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

面向对象分析与设计40讲(6)设计原则之开闭原则

文章目录

    • 一、概念
    • 二、示例(C++ 实现)
      • 1. 违反开闭原则的示例
      • 2. 遵循开闭原则的示例

一、概念

开闭原则(Open-Closed Principle,OCP)是面向对象设计中的重要原则,由 Bertrand Meyer 提出,核心思想可以概括为:对扩展开放,对修改关闭

具体来说,一个软件实体(如类、模块、函数等)应当允许在不修改其源代码的前提下,通过扩展的方式来新增功能。这里的 “开放” 指的是允许扩展,“关闭” 指的是禁止修改原有代码。

遵循开闭原则的好处在于:

  • 减少修改原有代码带来的风险,避免引入新的 bug

  • 提高代码的可维护性和可扩展性

  • 使系统更加稳定,老功能不会因为新增功能而受到影响

实现开闭原则的关键是抽象化,通过定义抽象的接口或基类,让具体实现类去继承和扩展,而高层模块只依赖于抽象,不依赖具体实现。

开闭原则是一种结果,一种指导思想,并非手段,想实现开闭原则,还得借助抽象来实现。
在这里插入图片描述

二、示例(C++ 实现)

1. 违反开闭原则的示例

假设我们需要实现一个简单的图形计算器,计算不同图形的面积。如果不遵循开闭原则,可能会这样写:

http://www.lryc.cn/news/595711.html

相关文章:

  • pandas库的基本运用
  • 传统RNN模型
  • vcs门级仿真(后仿真)指南
  • Spring、Spring MVC、Spring Boot、Spring Cloud的联系和区别
  • 异构融合 4A:重构高性能计算与复杂场景分析的安全与效率边界
  • gpt面试题
  • MCP vs 传统集成方案:REST API、GraphQL、gRPC的终极对比
  • 深入浅出Proxy与Reflect:从“黑中介“到“数据管家“的进阶之路
  • OpenCV Mat UMat GpuMat Matx HostMem InputArray等设计哲学
  • 京东AI投资版图扩张:具身智能与GPU服务器重构科研新范式
  • 基于单片机智能药盒/智能药箱/定时吃药系统
  • PHP 文件上传
  • Python----大模型(基于Fastapi+streamlit的机器人对话)
  • 自研能管项目开发界面
  • 【Linux基础知识系列】第五十六篇 - 使用File命令识别文件类型
  • 记一次flink资源使用优化
  • Java内部类与Object类深度解析
  • 聊聊登录接口的混合加密:AES+RSA双剑合璧
  • 【node】npm包本地开发与调试
  • 深入解析Hadoop中的Region分裂与合并机制
  • 关于集合的底层数据结构
  • 【C++进阶】揭秘list迭代器:从底层实现到极致优化
  • Pulsar存储计算分离架构设计之Broker无状态
  • 飞算科技:用AI与数智科技,为产业数字化转型按下“加速键”
  • 《声音分类模型》
  • 一、Vue概述以及快速入门
  • 深度学习 --- 激活函数
  • Datawhale 202507 夏令营:让AI学会数学推理
  • Ultralytics代码详细解析(四:engine->trainer.py 训练部分代码详解)
  • 架构演进核心路线:从离线仓库到实时湖仓一体