“深入浅出”系列之设计模式篇:(0)什么是设计模式

设计模式六大原则

  1. 单一职责原则:一个类或者一个方法只负责一项职责,尽量做到类的只有一个行为原因引起变化。

核心思想:控制类的粒度大小,将对象解耦,提高其内聚性。

  1. 开闭原则:对扩展开放,对修改关闭。即软件实体(类、模块、函数等)应该可以扩展,但是不可修改。

实现方法:通过抽象约束、封装变化来实现,即通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的可变因素封装在相同的具体实现类中。

  1. 里氏替换原则:子类可以扩展父类的功能,但不能改变原有父类的功能。

核心思想:确保基类与子类之间的替换性,即子类对象可以替换基类对象,且不会导致程序的错误。

  1. 依赖倒置原则:高层模块不应该依赖于低层模块,二者都应该依赖于其抽象;抽象不应该依赖于细节,细节应该依赖于抽象。

实现方法:面向接口编程,通过接口或抽象类作为参数、返回值或成员变量等,使高层模块与低层模块之间解耦。

  1. 接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。

核心思想:将接口拆分成更小的、更具体的接口,使客户端只需要知道它们感兴趣的方法。

  1. 迪米特法则:一个对象应该对其他对象有最少的了解,只与直接朋友通信。

核心思想:限制软件实体之间通信的宽度和深度,降低系统的复杂度。

相关推荐
AI人工智能+电脑小能手5 小时前
大白话说Java设计模式-26-策略模式(业务实战篇)
java·spring·设计模式·策略模式·支付系统·算法切换
星火102410 小时前
【Groovy翻译-进阶篇】Groovy 中的设计模式
后端·设计模式·groovy
SL_staff11 小时前
风控规则如何从硬编码解耦?我们在 JVS-Rules 中的实践与思考
java·spring boot·设计模式
小此方12 小时前
Linux加餐(一):藏在Linux中的设计模式(一)策略模式与日志
linux·设计模式·策略模式
To_OC21 小时前
从一行入口代码啃透 NestJS:工厂模式、装饰器和依赖注入是怎么串起来的
后端·设计模式·nestjs
东方小月1 天前
从零开发一个 Coding Agent(十二):实现版本化 JSONL 与真实 CLI 入口
前端·设计模式·前端框架
程序员贺加贝1 天前
轻制造SaaS的生产闭环建模-BOM工单领料报工质检与入库
java·设计模式·架构
嘟嘟07171 天前
SDD 规范驱动开发:从 vibe coding 崩盘到"两次创造"
设计模式·代码规范·vibecoding
无凭1 天前
拆解 DeerFlow Memory:Agent 的长期记忆到底怎么做?
人工智能·设计模式
AI大法师1 天前
品牌焕新不只换 Logo:捷豹案例里的触点重构方法
大数据·人工智能·设计模式·新媒体运营