面向对象的典型原则 可以划分两类:面向类的和面向包。
面向类的包括: SRP--单一职责原则。
OCP--开放封闭原则。
LSP --里氏替换原则。
DIP--依赖倒置原则。
ISP--接口隔离原则。
面向包的包括: 强调的是包的内聚性设计要求->REP--重用发布等价原则。
CCP--共同封闭原则。
CRP--共同重用原则。
针对是包间耦合性要求->ADP--无环依赖原则。
SPP--稳定依赖原则。
SAP--稳定抽象原则。
六大设计原则:
单一职责原则 SRP-- Single Responsibility Principle:一个类应该只有一个发生变化的原因。
一个类应该仅有一个引起它变化的原因,不要将变化原因不同的职责封装在一起而应该分离。
关键点:什么是类的职责,以及怎么划分类的职责。
对于接口,在设计的时候一定要做到单一,但是对于实现类就需要更多方面考虑,单一职责适用于
接口、类、同时也适用于方法,一个方法尽可能做一件事,对于单一职责原则建议是接口一定要做
到单一职责,类的设计尽量做到只有一个原因引起变化。
开放封闭原则 OCP--Open Closed Principle:软件实体(类、模块、函数等)应该是可以扩展的但是不可以修改。
软件实体应当对扩展开放,对修改关闭。
依赖倒置原则 DIP--Dependence Inversion Principle:抽象不应该依赖于细节,细节应该依赖于抽象。
依赖于抽象而不要依赖于具体因为抽象相对稳定。
接口隔离原则 ISP--Interface Segregation Principle:不应该强迫客户依赖并未使用的方法,接口属于客户而不属于
它所在的类层次结构。
尽量应用专门的接口,而不是单一的总接口,接口应该面向用户将依赖建立在最小的接口上。
里氏替换原则 LSP Liskov Substitation Principle:子类型必须能够替换它们的基类型。
迪米特法则 LOD Law of Demeter:又叫最少知原则,指软件实体应该尽可能少的和其他软件实体发生相互作用。