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

面向对象设计的 **七大设计原则** 与 **十六种常用设计模式**(含简单工厂,严格意义上属编程习惯而非GoF23模式)

面向对象设计的七大设计原则十六种常用设计模式(含简单工厂,严格意义上属编程习惯而非GoF23模式),是软件架构与高质量代码设计的核心知识图谱。以下为简明精要的归纳与关键要点说明:

七大设计原则(SOLID + CRP + LOD)

  • SRP:一个类只负责一个职责 → 提升可维护性与可测试性;
  • OCP:通过抽象(接口/抽象类)预留扩展点,新增功能不改旧代码;
  • LSP:子类必须能完全替代父类(行为契约一致),否则继承关系失效;
  • DIP:模块依赖于抽象(接口/抽象类),而非具体实现;高层模块不应依赖低层模块细节;
  • ISP:避免“胖接口”,按客户端需求拆分为多个专用小接口;
  • CRP:优先用组合(has-a)而非继承(is-a),降低耦合、提升灵活性;
  • LOD:一个对象应仅与“直接朋友”交互(参数、成员、创建对象),减少跨层调用。

核心设计模式分类速记

类型模式核心意图典型特征
创建型单例、工厂方法、抽象工厂、建造者、原型控制对象创建过程解耦new,封装实例化逻辑
结构型适配器、桥接、装饰器、代理、外观组织类/对象关系关注“如何组合”以获得新能力
行为型观察者、策略、模板方法、命令、状态等分配职责与通信机制关注“对象间如何协作”

📌特别提示

  • “简单工厂”虽非GoF模式,但作为入门桥梁极具教学价值;
  • “单例”的线程安全(懒汉式双重检查锁 vs 饿汉式静态初始化)、序列化/反射破坏问题需警惕;
  • “装饰器”与“代理”易混淆:装饰器增强功能(如日志、缓存),代理控制访问(如权限、远程、延迟);
  • “观察者”是事件驱动架构基石,现代框架(如Spring Event、RxJava、Vue响应式)均深度应用其思想。
# 示例:符合OCP + DIP + SRP 的策略模式轻量实现fromabcimportABC,abstractmethodfromtypingimportProtocolclassPaymentStrategy(Protocol):defpay(self,amount:float)->str:...classAlipayStrategy:defpay(self,amount:float)->str:returnf"支付宝支付{amount}元"classWechatPayStrategy:defpay(self,amount:float)->str:returnf"微信支付{amount}元"classOrderProcessor:def__init__(self,strategy:PaymentStrategy):self._strategy=strategy# 依赖抽象,符合DIPdefexecute_payment(self,amount:float)->str:returnself._strategy.pay(amount)# 单一职责:只处理支付流程# 新增PayPal?只需新增类,无需修改OrderProcessor → 符合OCP & SRP

http://www.jsqmd.com/news/710200/

相关文章:

  • 拒绝“烂尾”!一文读懂泳池工程合规性、设备选型与全周期运维成本控制 - 深度智识库
  • 你的下一任同事,可能不是人
  • 2026年 - 海棠依旧大
  • 大语言模型在数学竞赛题中的表现与优化策略
  • 聊聊js中的math对象
  • 2026 管道漏水检测优质服务商推荐:精准定位暗管 / 地埋 / 消防漏点 - 海棠依旧大
  • 企业如何用ERP系统提升管理效率?3步实现数字化升级的实战指南
  • 2026 泳池温泉工程甄选 悦水环保工程一站式服务指南 - 深度智识库
  • 万方AIGC率45%紧急救援:率零DeepHelix实测降到5%全程
  • 36
  • 动量注入技术:低内存量化训练的创新方法
  • DeFM:专为机器人设计的深度视觉基础模型
  • 2026年纸箱包装实力厂家推荐:海宁鑫远包装涵盖各类纸箱、包装箱定制、瓦楞箱、及数码印刷、纸箱打样服务 - 海棠依旧大
  • Ryujinx Switch模拟器终极配置指南:5个关键步骤让你畅玩热门游戏
  • ADI DSP仿真器接口大变样?从14PIN到10PIN的实战转换指南(附CCES测试避坑)
  • 2026年4月纸箱厂家最新推荐:各类纸箱、家纺包装箱、玩具包装箱、汽配包装箱、电子包装箱、日化包装箱、农产品包装箱、礼盒包装箱、易碎品包装及数码印刷优选指南 - 海棠依旧大
  • 2026年4月上海本地便捷的口腔门诊部最新推荐:种植牙、牙齿矫正、儿童早矫优选指南 - 海棠依旧大
  • 从3D电影到手机屏幕:聊聊偏振光那些‘藏’在你身边的黑科技
  • Outfit字体终极指南:9字重开源字体如何重塑你的品牌设计系统
  • 提示词工程化实践:从手工调试到框架驱动的LLM应用开发
  • kubernetes 资源对象(一)
  • 3大技术难题解析:高效网页数据提取的实战方案
  • 数字音乐格式解密技术深度解析:ncmdump逆向工程实践指南
  • 【026】线程状态与 synchronized 基础
  • 智能体与工作流:自动化技术的核心范式对比与实践
  • 2026年白洋淀住宿优质选择推荐:白洋淀望月岛10号院,雄安白洋淀民宿、白洋淀农家院、民宿体验、包吃住服务、整院出租、渔船接送以原生态水乡体验守护短途出行美好 - 海棠依旧大
  • 3步解锁大脑奥秘:OpenBCI GUI完整脑机接口入门指南
  • 2026年4月电阻及电阻柜厂家最新推荐:中性点接地电阻、负载电阻柜、制动电阻、梯形铝壳电阻、大功率电阻器、假性负载测试电阻柜厂家优选指南 - 海棠依旧大
  • 机器学习评估指标详解:从原理到实践
  • claude code在pycharm中的安装使用