1.单一职责(SRP)
一个类或者一个方法,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。
2. 开闭原则(OCP)
开闭原则指的是一个软件实体应对对扩展开发,对修改关闭。
3. 依赖倒置原则(DIP,IOC)
依赖倒置(Dependence Inversion Principle)原则讲的是:要依赖于抽象,不要依赖于具体。
抽象不应当依赖于细节;细节应当依赖于抽象;
要针对接口编程,不针对实现编程。
4. 组合/聚合复用原则
在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分:新的对象通过向这些对象的委派达到复用已有功能的目的。
5. 里氏替换原则(LSP)
所有引用基类的地方必须能透明地使用其子类的对象。
即:
所以使用基类代码的地方,用派生类代码替换后,能够正确的执行动作处理。
换句话说,如果派生类替换了基类后,不能够正确执行动作,那么他们的继承关系就应该废除。
6.迪米特法则(Law of Demeter)
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中的一个类需要调用另外一个类的某一个方法,可以通过第三者转发这个调用。
将迪米特法则运用到系统的设计中时,应注意的几点:
① 在类的划分上,应该创建有弱耦合的类;
② 在类的结构设计上,每一个类都应当尽量降低成员的访问权限;
③ 在类的设计上,只要有可能,一个类应当设计成不变类;
④ 在对其他类的引用上,一个对象对其它对象的引用应当降到最低;
⑤ 尽量降低类的访问权限;
⑥ 谨慎使用序列化功能;
⑦ 不要暴露类成员,而应该提供相应的访问器(属性)。
一个类或者一个方法,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。
2. 开闭原则(OCP)
开闭原则指的是一个软件实体应对对扩展开发,对修改关闭。
3. 依赖倒置原则(DIP,IOC)
依赖倒置(Dependence Inversion Principle)原则讲的是:要依赖于抽象,不要依赖于具体。
抽象不应当依赖于细节;细节应当依赖于抽象;
要针对接口编程,不针对实现编程。
4. 组合/聚合复用原则
在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分:新的对象通过向这些对象的委派达到复用已有功能的目的。
5. 里氏替换原则(LSP)
所有引用基类的地方必须能透明地使用其子类的对象。
即:
所以使用基类代码的地方,用派生类代码替换后,能够正确的执行动作处理。
换句话说,如果派生类替换了基类后,不能够正确执行动作,那么他们的继承关系就应该废除。
6.迪米特法则(Law of Demeter)
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中的一个类需要调用另外一个类的某一个方法,可以通过第三者转发这个调用。
将迪米特法则运用到系统的设计中时,应注意的几点:
① 在类的划分上,应该创建有弱耦合的类;
② 在类的结构设计上,每一个类都应当尽量降低成员的访问权限;
③ 在类的设计上,只要有可能,一个类应当设计成不变类;
④ 在对其他类的引用上,一个对象对其它对象的引用应当降到最低;
⑤ 尽量降低类的访问权限;
⑥ 谨慎使用序列化功能;
⑦ 不要暴露类成员,而应该提供相应的访问器(属性)。