三大基本面向对象设计原则
---针对接口编程,而不是针对实现编程
---优先使用对象组合,而不是类继承
---封装变化点
几条更具体的设计原则:
1、单一职责(SRP,Sign Responsible Principle)
核心思想:一个类,最好只做一件事情,应该仅有一个引起它变化的原因(高高内聚、低耦合)
2、开放封闭原则(OCP,Open Closed Principle)
核心思想:类模块应该是课扩展的,但是不可修改(对扩展开放,对更改封闭)
l 对扩展开放,意味着有新的需求变化时,可以对现有代码进行扩展,适应新要求。
l 对更改封闭,意味着类一旦完成就可以独立完成其工作,而不需要对类进行更改。
3、Liskov替换原则(LSP)
核心思想:子类必须能够替换它们的基类。
4、依赖倒置原则(DIP,Dependency Inversion Principle)
核心思想:依赖于抽象。
l 高层模块不应该依赖底层模块,二者都应该依赖于抽象。
l 抽象不应该依赖于实现细节,实现细节应该依赖于抽象。
5、接口隔离原则(ISP, Interface Segregation Principle)
核心思想:使用多个小的专门的接口,而不要使用大的总接口。
l 接口应该是内聚的,应该避免出现“胖接口”。
l 一个类对另一个类的依赖应该建立在最小接口上,不要强迫依赖不用的方法,这是一种接口污染。
6、合成"聚合复用原则(CARP, Composite/Aggregate Reuse Principle)
核心思想:在新对象中已有对象,使之成为就对象的成员,从而通过操作这些对象应该尽可能少的和其他软件实体发生相互作用。
这里面都是设计模式中常用的规则。