理解设计模式

Posted by AceKei on May 1, 2019

设计模式

image

设计原则

1. 单一职责(单一功能原则)

规定每个类都应该有一个单一的功能,并且该功能能够由这个类完全封装起来。所有他(这个类)的服务都应该严密的和该功能平行(功能平行,即没有任何依赖)。

保持一个类专注于单一功能点上的一个重要的原因是,他使得类更加健壮。

简单通俗来说:一个类负责一项职责。

2 里氏替换原则

派生类(子类)对象可以在程式中代替其基类(父类)对象。

简单通俗来说:子类可以扩展父类的功能,但是不能改变父类原有的功能。

3 依赖倒置原则

依赖于抽象,不依赖具体。实现开闭原则的关键是抽象,并且从抽象化导出具体实现,如果说开闭原则是面向对象设计的目标,那么依赖倒置原则就是面向对象设计的主要手段。

定义:高层模块不应该依赖底层模块,而且都应该依赖其抽象,抽象不应该依赖细节,细节应该依赖抽象。

通俗说:要求对抽象进行编程,不要对实现进行编程。依赖倒置的核心思想是面向接口编程。

4 接口隔离原则

使用多个隔离的接口,比使用单个接口好。

建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。

和单一职责对比:

  1. 单一职责原则注重的是职责,而接口隔离原则注重的是对接口依赖的隔离。
  2. 单一职责主要是约束类,其次才是接口和方法,他针对的是程序中的实现和细节。而接口隔离原则主要约束接口,主要针对抽象,针对程序整体框架的构建。

    5 最少知道原则

    一个对象应该对其他对象保存最少的了解。

通俗说:一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类,无论逻辑多复杂,都尽量将逻辑封装在类的内部,对外除了提供的public,不对外泄漏任何信息。

6 开闭原则

对扩展开放,对修改关闭。对程序进行扩展的时候,不能去修改原有的代码。

开闭原则是面向对象编程设计中最基础的设计原则。

总结:用抽象构建框架的时候,用实现扩展细节。单一职责原则说实现类要职责单一,里氏替换原则说不要破坏继承体系,依赖倒置说要面向接口编程,接口隔离表示设计接口的时候要精简单一,最少知道认为要降低耦合。而开闭原则是总纲,宗旨是对扩展开放,对修改关闭。