不管BS还是CS中现在基本都在使用WCF服务了,那么类的封装肯定是少不了的。那么对服务端的类有哪些需要注意的呢。
1、一定要封装一次,也就是如果想给客户端提供数据,一定要自己重新写一个封装数据的类。
比如,我在前段时间写了一个服务,给客户端提供数据的。服务端读取数据使用的是ADO.NET实体模型。因为生成的实体,是可序列化的,所以为了省事直接将实体数据模型作为参数类型进行传输,这样程序很快就写完了。
可是过段时间发现数据表要修改,那么对应的ADO.NET数据表模型就要重新修改,而客户端又使用的是服务端的模型,所以客户端也要做相应的改变,修改的代价比较大。
所以服务端的数据模型一定要封装成另外一个类,这样即使数据库字段发生变化,也仅仅影响服务端而已。
面向对象的封装性无时无刻存在的。
2、小心序列化问题。
服务端的类,客户端之所以以能获取到,靠的就是序列化。因为不管是数据,还是数据结构在网络中都是流传输的,一旦服务端的类无法序列化,客户端也就无法访问了。
详见:http://blog.csdn.net/yysyangyangyangshan/article/details/13076207
3、要有预见性
一个好的服务端,不光要能实现当前的功能,还要考虑到后续扩展的问题。封装类的时候尽量考虑业务的多变性,多谢想想怎么抽象,或者多写几个字段和属性,就能为以后的扩展减少很多的修改。当然这个是需要多在实际应用中总结的。
相关文章
- 11-11DLL中导出STL模板类的问题
- 11-11struts神马的不过是对servlet、filter的封装而已,hibernate神马的也不过是对jdbc的封装而已,他们只是把一些常见的操作流程化了,如果不懂servlet、filter,不懂jdbc,使用struts和hibernate出问题了都不知道是怎么回事。
- 11-11JAR冲突问题的解决以及运行状态下如何查看加载的类
- 11-11JAR冲突问题的解决以及运行状态下如何查看加载的类
- 11-11原子操作类的使用以及ABA问题的解决
- 11-11对象组合(练习)————给一个类的对象封装一个属性,这个属性是另一个类的对象
- 11-11基于spring data jpa封装带有动态分页查询、动态条件求和的基础service类和基础controller类
- 11-11类的组合与封装
- 11-117.C++类与封装的概念
- 11-11关于IPFS今天讲一下封装速度的问题