设计原则(三):OCP 开闭原则

简介: 设计原则(三):OCP 开闭原则

背景介绍


这是我的《架构整洁之道》系列的第七篇,这一篇我们将一起学习 OCP 开闭原则~

《架构整洁之道》系列:



OCP 开闭原则


对 OCP 原则的描述应该为:设计良好的计算机软件应该易于扩展,同时抗拒修改。

我们可以解释为:一个设计良好的计算机系统应该在不需要修改的前提下就可以轻易被扩展。


尽管大部分软件设计师都己经认可了 OCP 是设计类与模块时的重要原则,但是在软件架构层面,这项原 则的意义则更为重大。


如果 A 组件不想被 B 组件上发生的修改所影响,那么就应该让 B 组件依赖于 A 组件。软件架构师可以根据相关函数被修改的原因、修改的方式及修改的时间来对其进行分组隔离,并将这些互相隔离的函数分组整理成组件结构,使得高阶组件不会因低阶组件被修改而受到影响。


结束语


网络异常,图片无法展示
|


OCP 是我们进行系统架构设计的主导原则,其主要目标是让系统易于扩展,同时限制其每次被修改所影响的范围。实现方式是通过将系统划分为一系列组件,并且将这些组件间的依赖关系按层次结构进行组织,使得高阶组件不会因低阶组件被修改而受到影响。

最后


✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

少年向来不识天高地厚
放眼处皆自负才高八斗
虽是自命风流
倒也坦诚无忧
我爱这样的少年
谦和而狂妄
骄傲又坦然☀️

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

相关文章
|
存储 缓存 网络协议
Linux系统之ARP命令的基本使用
【7月更文挑战第2天】Linux系统之ARP命令的基本使用
1167 3
|
Serverless C语言 C++
【数学建模】利用C语言来实现 太阳赤纬 太阳高度角 太阳方位角 计算和求解分析 树木树冠阴影面积与种植间距的编程计算分析研究
【数学建模】利用C语言来实现 太阳赤纬 太阳高度角 太阳方位角 计算和求解分析 树木树冠阴影面积与种植间距的编程计算分析研究
952 1
|
10月前
|
人工智能 自然语言处理 算法
GEO优化不踩坑:不同规模企业的服务商选择与落地干货
AI搜索崛起,GEO成流量新风口。企业需根据规模与行业精准选择服务商:大企业重全球布局与合规,选即搜AI、Moz;中小微求性价比与速效,边鱼科技、Ahrefs更适配。结合实操案例与签约避坑指南,助力品牌高效抢占AI推荐红利,实现线索与订单双增长。(238字)
|
10月前
|
自然语言处理 运维 供应链
哪些Agent工具适合中小企业?从选型到落地,一篇吃透
中小企业数字化转型常陷“投入打水漂”困境:重金引进系统却因人才短缺、操作复杂沦为摆设。本文聚焦中小企业真实痛点,拆解Agent工具如何以低成本、易操作、高适配助力企业降本增效。从智能客服、财务自动化到生产管理,精选实用场景与落地策略,手把手教你选对“用得起、用得会、用得好”的AI工具,让技术真正赋能业务,实现“小投入,大回报”。
712 1
|
10月前
|
云安全 运维 安全
政务云安全合规建设
政务云安全合规建设是数字政府的基石,需以等保2.0、密码法为遵循,构建专有云架构、数据分类分级防护、全链路审计、两地三中心容灾及国产化运维体系,实现全链条安全可控。通过等保测评验收,确保合规落地,助力数字政府安全发展。(238字)
816 0
|
人工智能 自然语言处理 算法
随机的暴力美学蒙特卡洛方法 | python小知识
蒙特卡洛方法是一种基于随机采样的计算算法,广泛应用于物理学、金融、工程等领域。它通过重复随机采样来解决复杂问题,尤其适用于难以用解析方法求解的情况。该方法起源于二战期间的曼哈顿计划,由斯坦尼斯拉夫·乌拉姆等人提出。核心思想是通过大量随机样本来近似真实结果,如估算π值的经典示例。蒙特卡洛树搜索(MCTS)是其高级应用,常用于游戏AI和决策优化。Python中可通过简单代码实现蒙特卡洛方法,展示其在文本生成等领域的潜力。随着计算能力提升,蒙特卡洛方法的应用范围不断扩大,成为处理不确定性和复杂系统的重要工具。
1263 21
|
机器学习/深度学习 数据采集 算法
智能交通信号控制:优化城市交通流
【10月更文挑战第2天】随着城市化进程加快,交通拥堵成为严峻挑战。智能交通信号控制(ITSC)通过集成现代信息技术、大数据分析和人工智能,实现了交通信号的动态优化,有效缓解了交通拥堵,提升了交通效率。其工作原理包括数据采集与处理、交通状态感知、流量预测及信号灯控制策略制定等环节。目前,ITSC已在多个城市应用并取得显著效果,如提升交通效率、减少拥堵和改善安全等。未来,ITSC将融合多模态数据、应用深度学习算法、实现区域协同控制,并与其他智能交通系统集成,为构建安全、高效、绿色的城市交通环境贡献力量。
1629 6
|
数据安全/隐私保护
JumpServer的权限管理
文章介绍了JumpServer的权限管理操作,包括如何创建授权规则和验证授权是否成功。
844 2
|
JavaScript 前端开发 API
全栈开发革命来临!Vue.js与Node.js联手,打造前后端无缝对接的奇迹之作!
【8月更文挑战第30天】在Web开发领域,前后端分离与协作至关重要。Vue.js以其轻量级和易用性深受前端开发者喜爱,而Node.js则以高性能和事件驱动特性在后端领域崭露头角。二者结合开启了全栈开发新篇章,通过RESTful API或GraphQL实现高效稳定通信。本文以示例说明如何使用Vue.js和Node.js构建全栈应用,从前端Vue组件到后端Express服务器,展示了数据获取与展示的全过程。这种组合提供了一种高效简洁的全栈开发方案,使开发者能更专注于业务逻辑实现。
1658 1
ArcMap要素面积的自动计算方法
本文介绍基于ArcMap软件,自动批量计算矢量图层中各个要素的面积的方法~
1117 1
ArcMap要素面积的自动计算方法

热门文章

最新文章