一、提高代码的重用性

代码的重用性可以通过两个方面的实现:函数级封装与对象级封装

1、函数级的封装

重用性不但体现在对对象的封装,对于重复性的业务无关的代码进行一层或多层的函数级封装,可以降低实现过程的复杂性。

进行函数级封装的特征:该过程具有简单的过程性,即只有一条线,无相关的分支或多个入口。

层次:即在编写函数时需要注重所写的函数的应用宽度,即有必要考虑先写通用功能函数,然后编写相关性功能函数,通用函数可能可以运用于其他方面的代码,而功能相关性函数,即私有函数则可以使当前的应用具有简单性,即保证了复用性,又保证了简单性。

2、对象级的封装

对象级封装能够做到更安全、更完整的封装,隐蔽不相关的处理分支,使上层调用只感觉到对象的原子特征。

对象级封装的特征:对象作用具有持久性、可能存在多入口或多出口、存在诸多关联特性、业务无关性等特征。

二、代码的一致性

内部一致性:在实现封装时,不管是函数级封装,还是对象级封装,都必须讲究一致的格调,比如说对单元格的调用时使用先行后列的入口参数,则不应该出现先列后行的入口参数的封装形式。

上下一致性:对于继续的私有级封装,更应该注意上下级之间的一致性,不应该让老虎生出一只猫来,那是应该杜绝的。同时又得保证父类的接口函义不被变更(特殊情况特殊考虑)。

三、代码的完整性

对象的封装必须提供完整的接口,在保证内部对象私有化的前提下,如何确保对内部对象的访问与操作,就必须提供完整的接口支持,对部份数据提供成对接口,如内部属性对象,提供Get与Set接口。

附加:提供完整的错误处理机制,由于这个方面并不是所有组件或对象都必须的,但在需要时只体现为更为重要。

四、接口的人性化

人性化主要体现有事务处理与参数调用等几个方面,做到内部可以实现就不要在外部实现,提供尽可能多的默认参数,也就是说从外部来看,对象是有生命的。如对象创建时需要分配一系列的内存,就不必要在创建对象时要求使用者额外地调用对象的某一接口;对象在销毁时需要释放内存等工作更应该由对象自身考虑(避免内存泄漏等更为严重的问题)

充分利用对象的多态性,使用调用者体会使用的简单性,如对一个打包对象,我们可以用一个接口实现对多种类型的数据进行打包,即在接口命名上不再体现打包数据的结构或特征等。

接口命名的人性化,在命名时要考虑其含义的简单性,调用者不需要关心的信息就不要表现出来,让用户只知道他所调用的只是一个对象,而并非是在调用多个对象。同时在接口应该体现接口的特征信息,从而使调用者有从接口命名中得到调用的体会。

五、把握封装的度