设计模式的七种设计原则

目录

前言

一、单一职责原则(SRP)是什么?

二、开闭原则(OCP)是什么?

三、里式替换原则(LSP)是什么?

四、接口隔离原则(ISP)是什么?

五、依赖反转原则(DIP)是什么?

六、合成复用原则是什么?

七、迪米特法则是什么?

总结



前言

设计模式的目的

编写时面临耦合性,内聚性 可维护性 可扩展性 重用性 灵活性等的需求。设计模式为了让程序,具有更好的

  1. 代码重用性 相同功能的代码 不用多次编写
  2. 可读性 编程规范性,便于其他人阅读和理解
  3. 可扩展性 当需要增加新的功能时 非常方便
  4. 可靠性 当我们增加新的功能后,对原来的功能没有影响
  5. 使程序呈现高内聚 低耦合的特性

一、单一职责原则(SRP)是什么?

一个类或者模块只负责完成一个职责(或者功能)。

  1. 降低类的复杂度,一个类只负责一项职责
  2. 提高类的可读性,可维护性
  3. 降低变更引起的风险

二、开闭原则(OCP)是什么?

在 23 种经典设计模式中,大部分设计模式都是为了解决代码的扩展性问题而存在的,主要遵从的设计原则就是开闭原则。 对扩展开放、修改关闭

为了尽量写出扩展性好的代码,我们要有扩展思想、抽象思想、封装思维。

三、里式替换原则(LSP)是什么?

降低原来继承高耦合,可移植性差

  1. 如果对每个类型为A1的对象a1,都有类型为A2的对象a2 使得以A1定义的所有程序P在所有的对象a1换成a2时 程序p的行为没有发生变化,那么类型A2是类型A1的子类型。大致就是在引用基类的地方必须能透明地使用其子类的对象
  2. 使用继承时,在子类中尽量不要重写父类的方法
  3. 继承实际上让两个类的耦合性增强了,在适当的情况下,可以通过聚合,组合,依赖来解决问题

四、接口隔离原则(ISP)是什么?

客户端不应该被强迫依赖它不需要的接口。其中的“客户端”,可以理解为接口的调用者或者使用者。客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口

五、依赖反转原则(DIP)是什么?

  1. 低层模块尽量都要有抽象类或接口,或者两者都有 程序稳定性更好
  2. 变量的声明类型尽量是抽象类或接口,这样我们的变量引用和实际对象间,就存在一个缓冲层,利于程序扩展和优化
  3. 继承时遵循里氏替换原则

六、合成复用原则是什么?

  1. 找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起
  2. 针对接口编程 而不是针对实现编程
  3. 为了交互对象之间的松耦合而设计

KISS 原则就是保持代码可读和可维护的重要手段。代码足够简单,也就意味着很容易读懂,bug 比较难隐藏。

YAGNI原则要去设计当前用不到的功能;不要去编写当前用不到的代码。实际上,这条原则的核心思想就是:不要做过度设计。

七、迪米特法则是什么?

  1. 降低类之间的耦合
  2. 由于每个类都减少了不必要的依赖,一次该法则只是要求降低类间(对象间)耦合关系 ,并不是要去完全没有依赖关系


总结

开闭原则 很重要

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值