设计模式的六大设计原则

一、什么是设计模式

设计模式是一套被反复使用、被多数人知晓的、代码设计经验的总结,它可以让代码更容易理解、提升代码可靠性以及更能够被复用。

二、设计模式的六大原则

单一原则

"应该有且只有一个原因引起类的变更",通俗来讲,一个类或接口尽可能只做一件事。如此,有以下好处:

  1. 类和接口的复杂性降低,职责明确

  2. 可读性好

  3. 可维护性提高

  4. 变更引起的风险降低,这也使开闭原则更容易实现

开闭原则

"可拓展,不修改(少修改)"

子类替换父类原则(里氏替换原则)

子类对象能够替换程序中父类对象出现的任何地方,并保证原有的逻辑行为及正确性不变。

要满足上面的要求,则需要:

  1. 子类的前置条件不能比父类更严格

  2. 子类的后置条件一定比父类更严格(或相同)

在继承类时,重写父类的所有方法,且子类尽量不要暴露自己的public方法

接口调用原则(迪米特原则)

"一个对象应该对其他对象有尽可能少的了解"。

通俗来讲,在这个原则中,一个对象只应该调用其直接的成员对象、方法参数和返回值中的对象,以及当前对象本身。则是意味着,对象应该尽量减少对其他对象的直接引用,从而降低类之间的耦合度。

接口隔离原则

"客户端不应该被迫依赖于它不使用的接口"。

具体来说,要求将一个大而全的接口拆分为更小、更具体的接口,以确保每个接口只包含客户端实际需要的方法。

同时,不要对外暴露没有实际意义的接口。

接口交互原则(依赖倒置原则)

"高层模块不应该依赖低层模块,二者都应该依赖于抽象"。

包括两个要点:

  1. 高层模块不应依赖于低层模块的细节,而应该依赖于抽象接口

  2. 抽象不应依赖于具体的实现细节,而具体的实现应该依赖于抽象

相关推荐
码匠许师傅18 小时前
【设计模式精讲】15.享元模式(Flyweight)
c++·设计模式·享元模式·uml
事圆则缓19 小时前
Android 常用设计模式速查
android·设计模式
码匠许师傅1 天前
【设计模式精讲】14.外观模式(Facade)
c++·设计模式·uml·外观模式
evans在进步1 天前
Java 常用设计模式(二):装饰器、适配器、责任链、模板方法、策略与观察者
java·开发语言·设计模式
码匠许师傅2 天前
【设计模式精讲】13.装饰器模式(Decorator)
c++·设计模式·uml·装饰器模式
evans在进步3 天前
Java 常用设计模式入门:建造者、工厂、单例、外观与代理
java·python·设计模式
字节跳动开源3 天前
VisActor全新图可视化开源项目:VGraph
前端·设计模式·开源
码匠许师傅3 天前
【设计模式精讲】11.桥接模式(Bridge)
c++·设计模式·桥接模式·uml
学习星球4 天前
AI Agent 成本工程实战:从 OpenAI Codex 的 8 个“烧 Token“Bug 学起
人工智能·设计模式·微信小程序
AI人工智能+电脑小能手4 天前
大白话说Java设计模式-46-责任链模式(业务实战篇)
java·设计模式·责任链模式·风控校验·servlet filter·spring interceptor·链式处理