IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

设计模式原则总结

Elton's Blog 2012-10-26 22:47:58 累计浏览 5,179 次
本机暂存

名称

解释

0、单一职责原则(SRP)就一个类而言,应该仅有一个引起它变化的原因。
一、”开放-封闭”原则(OCP)在软件设计模式中,这种不能修改,但可以扩展的思想也是最重要的一种设计原则。即软件实体(类、模板、函数等等)应该可以扩展,但是不可修改。


【通俗】:设计的时候,时刻考虑,尽量让这个类是足够好,写好了就不要去修改了,如果新需求来,我们增加一些类就完事了,原来的代码能不动则不动。

二、里氏代换原则(LSP)1.一个软件实体如果使用的是一个父类的话,那么一定适用于该子类,而且他觉察不出父类对象和子类对象的区别。也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化。


【一句话】:子类型必须能够替换掉他们的父类型。

三、依赖倒置原则(DIP)1.高层模块不应该依赖于底层模块。两个都应该依赖抽象。2.抽象不应该依赖于细节,细节依赖于抽象(


【白话】:针对接口编程,不要针对实现编程。

四、接口隔离原则(ISP)1.使用多个专门的接口比使用单一的总接口总要好。换而言之,从一个客户类的角度来讲:一个类对另外一个类的依赖性应当是建立在最小接口上的。


2.过于臃肿的接口是对接口的污染。不应该强迫客户依赖于它们不用的方法。

五、合成/聚合复用原则(CARP)尽量使用合成/聚合,尽量不要使用类继承。


【聚合】:表示一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。

【合成】:一种强的拥有关系,提现了严格的部分和整体的关系,部分和整体的生存周期一致。

六、迪米特法则(LoD)


最少知识原则

强调类之间的松耦合。即:如果两个类不必彼此直接通信,那么着两个类就不应当发送直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。

大部分内容摘自《大话设计模式

同分类推荐文章

  1. 如何写好设计文档? (2026-06-23 08:00:00)
  2. Designing With Uncertainty: How AI Supercharges Probabilistic Thinking (2026-06-16 23:00:00)
  3. The Benefits Of Cognitive Inclusion In UX Research (2026-06-10 18:00:00)

查看更多 设计 文章 →

建议继续学习

  1. 面向“接口”编程和面向“实现”编程 (累计阅读 13,909)
  2. PHP的异常原理与实例说明 Fatal error: Uncaught exception (累计阅读 9,763)
  3. PHP业务逻辑层和数据访问层设计 (累计阅读 7,578)
  4. 面向对象的Shell脚本 (累计阅读 6,094)
  5. 读《做人,做事,做架构师》 (累计阅读 6,065)
  6. 微博架构与平台安全演讲稿 (累计阅读 5,744)
  7. struct与class区别联系 (累计阅读 4,977)
  8. PHP面向对象编程的三大特性 (累计阅读 4,654)
  9. 什么是重构,什么不是重构 (累计阅读 4,614)
  10. 面向对象设计模式的核心法则 (累计阅读 4,520)