当前位置: 首页 > news >正文

php java go python面向对象的设计原则和常用设计模式

一、面向对象设计原则(OOP Design Principles)

是写出高内聚、低耦合、可维护系统的基础,重点是 SOLID 五大原则 + 其他补充原则。

📌 SOLID 五大设计原则:

原则名称全称核心思想示例关键词
S 单一职责原则Single Responsibility Principle一个类只负责一项职责拆分类、分离逻辑
O 开闭原则Open-Closed Principle对扩展开放,对修改关闭插件式架构
L 里氏替换原则Liskov Substitution Principle子类应能替代父类多态、接口隔离
I 接口隔离原则Interface Segregation Principle客户端不应依赖它不使用的方法多个小接口
D 依赖倒置原则Dependency Inversion Principle高层模块不依赖低层模块,依赖抽象接口注入、构造注入


📌 其他常见设计原则:

原则名称核心思想示例
迪米特法则(最少知道原则)一个对象应当尽量少了解其他对象的内部细节避免链式调用 $a->b->c()
组合优于继承多用组合(has-a),少用继承(is-a)优先注入依赖而不是继承
封装变化把可能变化的部分封装起来策略模式、适配器模式等


二、常用设计模式(Design Patterns)

解决特定软件开发问题的通用方案

分为三大类:

创建型

结构型

行为型


🔷 1. 创建型模式(解决“如何创建对象”)

模式名称作用示例场景
单例模式保证一个类只有一个实例数据库连接、配置管理
工厂模式统一对象创建过程支付网关、消息驱动
抽象工厂模式创建一组相关对象UI组件、操作系统接口
建造者模式按步骤构建复杂对象报表生成器
原型模式通过复制已有对象创建新对象复制模板对象


🔷 2. 结构型模式(解决“如何组织类与对象”)

模式名称作用示例场景
适配器模式兼容不同接口第三方 SDK 封装
装饰器模式动态添加功能Laravel 中间件
代理模式控制对对象的访问延迟加载、权限控制
外观模式提供简化统一接口Laravel 门面
桥接模式解耦抽象与实现不同平台 UI 样式分离
组合模式组织树状结构目录结构、菜单组件
享元模式共享对象以节省内存字体、图标缓存


🔷 3. 行为型模式(解决“对象如何交互”)

模式名称作用示例场景
观察者模式发布-订阅Laravel 事件监听器
策略模式可切换算法多种支付/排序/折扣策略
模板方法模式固定流程,子类定细节控制器继承基础逻辑
责任链模式多个对象依次处理请求Laravel 中间件链
命令模式封装请求为对象队列任务、撤销操作
状态模式封装状态和行为订单状态机
备忘录模式保存对象历史状态撤销、版本恢复
迭代器模式顺序访问集合元素遍历集合对象
解释器模式解析语言语法表达式SQL/规则引擎解析器
中介者模式降低对象间耦合聊天系统、表单校验中介者


 三、应用建议

场景建议使用
业务逻辑解耦观察者、策略、模板方法
接入第三方服务适配器、代理、外观
增加功能但不改原类装饰器、责任链
对象创建复杂建造者、工厂、抽象工厂
系统模块间解耦中介者、桥接、外观
http://www.xdnf.cn/news/334837.html

相关文章:

  • 构建高可维护、易测试的异步任务系统:基于 Celery + Redis + Eventlet 的模块化架构实践
  • AI日报 · 2025年5月08日|Stripe发布全球首个支付AI基础模型
  • 论坛系统开发(0-1) (上 前置知识介绍)
  • 解锁跨平台开发的新时代——Compose Multiplatform
  • Python3 上下文管理器:优雅管理资源的艺术
  • JVM运行时数据区域(Run-Time Data Areas)的解析
  • Linux系统管理与编程15:vscode与Linux连接进行shell开发
  • HTTP Error 500.31 - Failed to load ASP.NET Core runtime
  • GuPPy-v1.2.0安装与使用-生信工具52
  • Asp.Net Core IIS发布后PUT、DELETE请求错误405
  • Docker封装深度学习模型
  • 从知识图谱到精准决策:基于MCP的招投标货物比对溯源系统实践
  • Linux:libc库简单设计
  • Java响应实体【R】
  • JavaScript 性能优化全攻略:从基础到实战
  • PDF生成模块开发经验分享
  • element MessageBox 实现底部三个按钮或者更多按钮—开箱即用
  • Spring Cloud:概述,服务注册和服务发现,多机部署和负载均衡
  • 二本计算机,毕业=失业?
  • 【Rust】结构体
  • 【算法学习】递归、搜索与回溯算法(二)
  • 计算机网络:深入分析三层交换机硬件转发表生成过程
  • 为了摸鱼和吃瓜,我开发了一个网站
  • 酒店客房拖鞋材质款式多样,对顾客入住感受影响大
  • 面试实践AND面经热点题目总结
  • 紫禁城多语言海外投资理财返利源码带前端uniapp纯工程文件
  • C++ Primer (第五版)-第十四章重载运算与类型转换
  • 雷军「去执行化」与小米汽车更名:一场关乎安全与战略的双向奔赴|创客匠人热点评述
  • 软件工程之需求分析涉及的图与工具
  • V 型球阀:多材质多驱动,精准适配复杂严苛工况-耀圣