Design 一、设计原则

1.开闭原则(Open Close Principle)

  对扩展开放、修改该关闭;
  针对新的逻辑需求,尽可能再原有基础上继承扩展,而不是直接修改原有逻辑。

2.依赖倒置原则(Dependence Inversion Principle)

  面向接口编程
  * 高层模块不应该依赖于低层模块,二者都应该依赖于抽象
  * 抽象不应该依赖于细节,细节应该依赖于抽象 
  * 针对接口编程,不要针对实现编程。
    低层模块:往往在一个应用程序中,我们有一些低层次的类,这些类实现了一些基本的或初级的操作,称之为低层模块;
    高层模块:另外一些高层次的类,这些类封装了某些复杂的逻辑,并且依赖于低层次的类,这些类我们称之为高层模块。 

3.单一职责原则(Single Responsibility Principle)

  每一个类(类/接口/方法)应该专注于做一件事情。

4.接口隔离原则(Interface Segregation Principle)

  应当为客户端提供尽可能小的单独的接口,而不是提供大的总的接口。

5.迪米特法则(Law Of Demeter)

  最少知道原则,强调只和朋友说话,和陌生人少交流。
  这里的朋友指成员变量、入参、出参。而只出现在方法体内部的类型则为陌生人,尽可能少的使用。	

6.里氏替换原则(Liskov Substitution Principle)

  超类存在的地方,子类是可以替换的。
  java里的泛型

7.组合/聚合复用原则(Composite/Aggregate Reuse Principle CARP)

  尽量使用对象组合(has-a)/聚合(contain-a)	,而不是继承关系达到软件复用的目的。
原文地址:https://www.cnblogs.com/Qkxh320/p/design_01.html