转自:moon1128
http://blog.csdn.net/moon1128/archive/2005/01/10/246803.aspx
设计原则:
1. “开 - 闭”原则 ( Open-Closed principle, OCP )
2. 里氏代换原则 ( Liskov Substitution Principle, LSP )
3 .依赖倒转原则 ( Dependency Inversion Principle, DIP )
4 .接口隔离原则 ( Interface Segregation Principle, ISP )
5 .合成 / 聚合复用原则 ( Composition/Aggregation Principle, CARP )
6 .迪米特法则 ( Law of Demeter, LoD )
系统的可扩展性是由 1,2,3,5 原则所保证的。
系统的灵活性是由 1 , 4 , 6 所保证的。
系统的可插入性是由 1 , 2 , 3 , 5 所保证的。
迪米特法则又叫作最少知识原则,就是说一个对象应当对其他对象有尽可能少的了解。
狭义的迪米特法则的缺点:
在系统里造出大量的小方法,这些方法仅仅是传递间接的调用,与系统的商务逻辑无关。
遵循类之间的迪米特法则会是一个系统的局部设计简化,因为每一个局部都不会和远距离的对象有直接的关联。但是,这也会造成系统的不同模块之间的通信效率降低,也会使系统的不同模块之间不容易协调。
门面模式和调停者模式实际上就是迪米特法则的应用。
广义的迪米特法则在雷的设计上的体现:
优先考虑将一个类设置成不变类。
尽量降低一个类的访问权限。
谨慎使用 Serializable 。
尽量降低成员的访问权限。