侧边栏壁纸
博主头像
敢敢雷博主等级

永言配命,自求多福

  • 累计撰写 57 篇文章
  • 累计创建 0 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

软件设计模式六大设计原则

敢敢雷
2020-06-11 / 0 评论 / 0 点赞 / 660 阅读 / 1,198 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我删除。

六大设计原则

  1. 单一职责原则
  2. 里氏替换原则
  3. 依赖倒置原则
  4. 接口隔离原则
  5. 迪米特法则
  6. 开放封闭原则

单一职责原则

不要存在多于一个导致类变更的原因

  • 核心思想:应该有且仅有一个原因引起类的变更
  • 问题描述:假如由类1完成职责T1,T2,当职责T1和T2有变更需要修改时,可能影响到该类的另外一个指责的正常工作。
  • 好处:类的复杂度降低、可读性提高、可维护性提高、扩展性提高、降低了变更引起的风险。
  • 需要注意:单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计是否优良,但是“职责”和“变化原因”都是不可以度量的,因项目和环境而异。

里式替换原则

子类可以扩展父类的功能,但不能改变父类原有的功能。

  • 核心思想:在使用基类的地方可以任意使用其子类,保证子类完美替换基类。
  • 通俗来讲:只要父类能出现的地方子类就能出现,反之,父类未必能胜任。
  • 好处:增加程序的健壮性,即使增加了子类,原有的子类还可以继续运行。
  • 需要注意:如果子类不能完整地实现父类的方法,或者父类的某些方法需要在子类已经发生了“畸变”,则建议断开父子继承关系,采用依赖、聚合、组合等关系代替继承。

依赖倒置原则

高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象

  • 核心思想:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象
  • 说明:高层模块就是调用端,底层模块就是具体实现类。抽象就是指接口和抽象类。细节就是处理类
  • 通俗来讲:依赖倒置原则的本质就是通过抽象使各类或模块的实现彼此的独立,互不影响,实现模块间的松耦合。
  • 好处:依赖倒置的好处在小型项目中很难体现出来。但在大中型项目中可以减少需求变化引起的工作量。使并行开发更友好。

接口隔离原则

客户端不应该被强迫地依赖那些根本用不上的方法。

  • 核心思想:类间的依赖关系应该建立在最小的接口上
  • 通俗来讲:建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。也就是说,我们要为各个类建立专用的接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。
  • 提高内聚,减少对外交互。
  • 为依赖接口的类定制服务。

迪米特法则

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

  • 核心思想:类间解耦。
  • 通俗来讲:一个类对自己依赖的类知道的越少越好。自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是面向对象编程,只有使各个模块之间的耦合尽量的低,才能提高代码的复用率。低耦合的优点不言而喻,但是怎么样编程才能做到低耦合呢?那正是迪米特法则要去完成的。

开放封闭原则

一个软件实体如类、模块和函数应该对扩展开放,对修改关闭

  • 核心思想:尽量通过扩展软件实体来解决需求变化,而不是通过修改已有的代码来完成变化
  • 通俗来讲: 一个软件产品在生命周期内,都会发生变化,既然变化是一个既定的事实,我们就应该在设计的时候尽量适应这些变化,以提高项目的稳定性和灵活性。
0

评论区