单一职责原则(single-resposibility principle)
其核心思想为:一个类,最好只做一件事,只有一个引起它的变化的原因
软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。测试驱动的开发实践常常会在设计出现臭味之前就迫使我们分离职责
开放-封闭原则(The Open-Close principle)
其核心思想为:对扩展开放,对修改封闭
软件实体(类、模块、函数)应该是可扩展的,但是不可修改的。也就是说,对于扩展是开放的,对于更改是封闭的。怎样可能在不改动模块源代码的情
况下去更改它的行为呢?怎样才能在无需对模块进行改动的情况下改变它的功能呢?关键是抽象!因此在进行面向对象设计时要尽量考虑接口封装机制、抽象机制和
多态技术。该原则同样适合于非面向对象的方法,是软件工程设计方法的重要原则之一
Liskov 替换原则(liskov-substitution principle)
其核心思想:子类必须能够替换其基类
子类应当可以替换父类出现在父类能够出现的任何地方
依赖倒置原则(dependency-inversion principle)
其核心思想:依赖于抽象
1、高层模块不应该依赖于低层模块,二者都应该依赖于抽象。2、抽象不应该依赖于细节。细节应该依赖于抽象。在进行业务设计时,于特定业务有关
的依赖关系应该尽量依赖接口和抽象类,而不是依赖于具体类。具体类只负责相关业务的实现,修改具体类不影响与特定业务有关的依赖关系。
接口分离原则(interface-segregation principle)
其核心思想:使用多个小的专门的接口,而不要使用一个大的总接口
具体而言,接口隔离原则体现在:接口应该是内聚的,应该避免“胖”接口。一个类对另外一个类的依赖应该建立在最小的接口上,不要强迫依赖不用的方法,这是一种接口污染
面向对象的5大原则,布布扣,bubuko.com
面向对象的5大原则
原文:http://www.cnblogs.com/tlijian/p/3590510.html