设计模式 7个基本原则

1、单一职责原则 (Single Responsibility Principle)

概念:一个类只负责一项职责。

简述:实际工作中随着业务拓展,维持此原则需要较大的改动成本,所以实际编码的过程中很难将它恰当地运用,需要结合实际情况进行运用。

2、开放-关闭原则(Open Close Principle)

概念:软件实体 (类、模块、函数等等) 应该是可以被扩展的,但是不可被修改,即对扩展开放,对修改关闭(Open for extension, close for modification)。

简述:在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。但是实际上不可能让一个系统的所有模块都满足 OCP 原则,我们能做的只是尽可能不要修改已经写好的代码与已有的功能,而是去扩展它。

3、里氏代换原则(Liskov Substitution Principle)

概念:任何基类可以出现的地方,子类一定可以出现。

简述:核心在于“子类继承父类时,尽量不要修改父类方法预期的行为”,所以里氏替换原则的重点在不影响原功能,而不是有没有覆盖原方法。总而言之就是:“子类可以扩展父类的功能,但不能改变父类原有的功能”。

4、依赖倒转原则(Dependence Inversion Principle)

概念:高层模块不应该依赖低层模块,二者都应该于抽象。进一步说,抽象不应该依赖于细节,细节应该依赖于抽象。

简述:核心思想就是面向接口编程,不同模块之间通过接口交互。

5、接口分离原则(Interface Segregation Principle)

概念:客户端不应该依赖它不需要的接口,一个类对另一个类的依赖应该建立在最小的接口上。

简述:接口分离的思想在于尽可能地去细化接口来实现一个个的单一接口,这些单一接口中的方法应该尽可能少,但是务必注意大小适度,不要过小导致设计复杂化,

6、迪米特法则(最少知道原则)(Demeter Principle)

概念:一个实体应当尽量少地与其他实体之间发生相互作用,或者说尽可能知道其他实体少。通俗来说,就是只与直接的朋友通信。

简述:类之间交互时需要考虑交互对象之间是否为“朋友”关系,保证只有互为“朋友”关系的类进行交互,否则需要进行分离(中间人通信)。

7、组合/聚合复用原则(Composite Reuse Principle)

概念:尽量使用对接口的组合/聚合的方式,而不是使用继承。

简述:不暴露父类的属性给实现类,而是以“黑盒”的形式让实现类只去实现相关的接口,即父类的各种实现细节实现类不可见。

参考资料

概念链接:https://www.jianshu.com/p/5b3bd49d83c0

各个模式分析详解:https://zhuanlan.zhihu.com/p/24614363

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

方寸间沧海桑田

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值