1、开闭原则
:对扩展开放,对修改关闭。
2、依赖倒置原则
:要面向接口编程,不要面向实现编程。
3、里氏替换原则
:只继承、不重写。
4、单一职责原则
:控制类的粒度大小、将对象解耦、提高其内聚性。
5、接口隔离原则
:降低接口粒度,客户端不应该被迫依赖于它不使用的方法。
6、迪米特法则
:使用中介类,降低耦合。(明星 - 经纪人(中介) - 商家)
7、合成复用原则
:先考虑组合或聚合,其次才考虑继承。
复用代码有两种形式(摘自 《Thinking in Java》):
组合
(合成):在新的类中产生现有类的对象,新的类是由现有的类的对象所组成。
继承
:按照现有类的类型来创建新类。无需改变现有类的形式,采用现有类的形式并在其中添加新代码。
代理
:Java 并没有提供对它的直接支持,这是继承与组合之间的中庸之道「将一个成员对象置于所要构造的类中(就像组合),但与此同时我们在新类中暴露了该成员对象的所有方法(就像继承)」。
总结:
开闭原则是总纲,它告诉我们要对扩展开放,对修改关闭;
里氏替换原则告诉我们不要破坏继承体系;
依赖倒置原则告诉我们要面向接口编程;
单一职责原则告诉我们实现类要职责单一;
接口隔离原则告诉我们在设计接口的时候要精简单一;
迪米特法则告诉我们要降低耦合度;
合成复用原则告诉我们要优先使用组合或者聚合关系复用,少用继承关系复用。(参考:http://c.biancheng.net/view/1333.html)