1、信息隐蔽
��软件设计通过信息隐蔽可增强抽象,并可保护类的存储表示不被抽象数据类型实例的用户直接存取。对其表示的唯一存取途径只能是界面。

2、消息限制
��类的设计者应当为类的命令设计一个明确的界面,该类实例的用户应当只使用界面提供的操作。

3、狭窄界面
��不是所有的操作都是公共的。只有对其它类的实例是必要的操作才放到界面上,其它操作应是隐蔽实现的部分。

4、强内聚
��模块内部各个部分之间应有较强的关系,它们不能分别标识。

5、弱耦合
��一个单独模块应尽量不依赖于其它模块。如果在类A的实例中建立了类B的实例,或者如果类A的操作需要类B的实例做为参数,或者如果类A是类B的一个派生类,则称类A"依赖于"类B。一个类应当尽可能少地依赖于其它类。
��耦合程度部分依赖于所使用的分解方法。类A之所以依赖于类B,是因为类A要求类B提供服务。这个依赖性可通过复制类B中的功能给类A来消除。但代码的复制减少了系统的灵活性并增加了维护的困难。继承结构损害了弱耦合的概念。因为在建立一般化�M特殊化关系的时候,继承引入了依赖。
��