设计模式的六大法则

1.单一职责原则

          定义:应该有且只有一个原因引起类的变化。There should never be more than one reason for a class to change.

2.里是替换原则

        定义:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换为o2,程序P的行为没有发生变化,那么类型S是类型T的子类型。4层含义:

  • 子类必须完全实现父类的方法。
  • 子类可以有自己的个性。
  • 覆盖或实现父类的方法时输入参数可以被放大

父类 public Collection doSomething(HashMap map){.....}

子类 public Collection doSomething(Map map){.....} 如果,反过来父类存在的地方,子类未必存在。

  • 覆盖或实现父类的方法是输出结果可以缩小

3.依赖倒置原则

High level modules should not depend upon low level modules,Both should depend upon abstractions.Abstractions should not depend upon details.Details should depend upon abstracts.

翻译过来为:

  • 高层模块不应该依赖低层模块,两者都应该依赖抽象
  • 抽象不应该依赖细节
  • 细节应该依赖抽象

也可以说高层模块,低层模块,细节都应该依赖抽象

对象的依赖关系有三种方式的传递:

1.构造方法传递依赖对象

2.Setter方法传递依赖对象

3.接口声明依赖对象

最佳实践

  • 每个类尽量都有接口或者抽象类,或都应具备
  • 变量的表面类型尽量是接口或抽象类
  • 任何类都不应该从具体类派生
  • 尽量不要覆写基类方法
  • 结合里是替换原则

4.接口隔离原则

      定义:客户端不应该依赖它不需要的接口,类间的依赖关系应该建立在最小的接口上。通俗讲:接口尽量细化,同时接口方法尽量少。单一职责要求的是类和接口职责单一,注重的是职责,是从业务逻辑划分,而接口隔离要求接口的方法尽量少。

 

猜你喜欢

转载自dubbo2013.iteye.com/blog/2399459
今日推荐