设计模式四大基本原则

设计模式四大基本原则(SOLID 里的四大核心,常说的面向对象四大设计原则)

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

定义

一个类/方法只拥有一个职责,只因一个原因发生修改。

核心

一个类只做一件事。

反面例子

一个类同时处理数据库读写、日志打印、接口参数校验;后续改日志逻辑会污染数据库代码,极易出bug。

2. 开闭原则 OCP(Open Closed Principle)

定义

扩展开放 ,对修改关闭

核心

新增功能尽量不改动原有成熟代码,通过扩展(继承、接口、组合)实现新逻辑。

作用

避免修改老代码引入线上bug,保证原有逻辑稳定。

3. 里氏替换原则 LSP(Liskov Substitution Principle)

定义

子类可以完全替换父类出现在程序任意位置,替换后程序行为不会出错。

核心

子类不能破坏父类原有行为,重写方法不能弱化功能、抛出更宽泛异常。

反面例子

父类方法不抛异常,子类重写后强制抛出运行时异常,替换后程序崩溃。

4. 依赖倒置原则 DIP(Dependency Inversion Principle)

定义

  1. 高层模块不依赖低层模块,二者都依赖抽象(接口/抽象类)
  2. 抽象不依赖实现,实现依赖抽象。

核心

面向接口编程,不要面向具体类。

例子

Service 不直接 new MysqlDao,而是依赖 Dao 接口,可无缝切换 Mysql/Redis/Oracle 实现。

补充:容易混淆的两个点

  1. 完整 SOLID 五大原则
    单一职责、开闭、里氏替换、依赖倒置、接口隔离原则 ISP
    很多面试题问「四大原则」,指前4个;问SOLID是5个。
  2. 接口隔离 ISP(第五大,顺带说明)
    客户端不应当依赖它不需要的接口;拆分大接口为多个小而专用接口。
相关推荐
workflower15 小时前
人形机器人灵巧手产业链
人工智能·设计模式·机器人·云计算·无人机
Java后端的Ai之路17 小时前
03、Python - 抽象工厂模式
开发语言·python·设计模式·抽象工厂模式·通用智慧
AI人工智能+电脑小能手21 小时前
大白话说Java设计模式-45-解释器模式(源码剖析篇)
java·设计模式·解释器模式·源码分析·pattern·spel·javacc
码匠许师傅1 天前
【设计模式精讲】4.单例模式(Singleton)
c++·单例模式·设计模式
雾削木1 天前
2026 编程领域热点知识速览:AI 辅助开发、设计模式实战与嵌入式高效迭代
人工智能·设计模式
AI人工智能+电脑小能手2 天前
大白话说Java设计模式-42-访问者模式(业务实战篇)
java·spring·设计模式·访问者模式·asm·营销规则·数据结构与操作分离
AI人工智能+电脑小能手2 天前
大白话说Java设计模式-43-访问者模式(源码剖析篇)
java·设计模式·访问者模式·源码分析·elementvisitor·asm classvisitor·spring spel
Michael_lcf3 天前
Agent设计模式:思考-行动-观察循环的本质与局限
设计模式·agent设计模式·agent设计模式的本质
丰锋ff3 天前
设计模式学习笔记
笔记·学习·设计模式
米啦啦.3 天前
设计模式/
观察者模式·单例模式·设计模式·工厂模式