一些内容摘自《Java与模式》
总的设计原则--OCP(Open-Closed Principle)
Software entities should be open for extension, but closed for modification.
Bertrand Meyer
解决问题的关键在于抽象化。OCP从另一个角度上讲就是所谓的“对可变性封装原则”(Principle of Encapsulation of Variation)。这意味着两点:
(1)一种可变性不应当散落在代码的很多角落里,而应当被封装到一个对象里面。
继承应当被看做是封装变化的方法,而不应当被认为是从一般的对象生成特殊的对象的方法。
(2)一种可变性不应该与另一种可变性混合在一起。
里氏代换原则
依赖倒转原则
要依赖于抽象,不要依赖于实现。
合成/聚合复用原则
尽量使用合成/聚合,而不是继承关系达到复用的目的。
迪米特法则
一个软件实体应当与尽可能少的其他实体发生相互作用。
接口隔离原则
应当为客户提供尽可能小的单独的接口,而不要提供大的总接口。