您现在的位置是:首页 > 编程 > 

开闭原则(对修改封闭,对扩展开放)

2025-07-22 04:36:21
开闭原则(对修改封闭,对扩展开放) 开闭原则(对修改封闭,对扩展开放)概述对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,提高程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类。案例讲解案例一下面以 搜狗输入法 的皮肤为例介绍开闭原则的应用。 UML图如下 分析: 搜狗输入法 的皮肤是背景图片、窗口颜和声音等元素的组合。用户可以根据自己

开闭原则(对修改封闭,对扩展开放)

开闭原则(对修改封闭,对扩展开放)

概述

对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,提高程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类。

案例讲解

案例一

下面以 搜狗输入法 的皮肤为例介绍开闭原则的应用。 UML图如下

分析搜狗输入法 的皮肤是背景图片窗口颜声音等元素的组合。用户可以根据自己的喜爱更换自己的输入法的皮肤,也可以从网上下载新的皮肤。这些皮肤有共同的特点,可以为其定义一个抽象类(AbstractSkin),而每个具体的皮肤(DefaultSpecificSkin和HeimaSpecificSkin)是其子类。用户窗体可以根据需要选择或者增加新的主题,而不需要修改原代码,所以它是满足开闭原则的。

案例二

网上的作业题

代码语言:javascript代码运行次数:0运行复制
if (x == 2)

  f(); //...

却因为粗心写成了:

 if (x=2)

  f();//...

结果花了很久才出这个运行错误。

一个进口电机故障,好久不出故障,聘请外方工程师过来迅速定位后,就收了100万美元;。。。

联系上面的例子,阐明编写代码时为何要“对修改封闭”,在遗产系统再工程时,“对扩展开放”?

我的答案: 对于小明写的代码,在语法上面没有问题,所以可以通过编译,但是在运行过程中出现bug,这就是为啥在写程序的时候要尽可能的,把错误控制在编译之前和对每一模块进行测试,而且写代码的时候需要做到对修改封闭,因为擅自修改代码,会导致这样的情况出现,就是一块功能没问题了,但是另一块地方又有问题了​。

第二个例子中,工程师可以很快到故障是因为,工程师和电机遵守了开闭原则,因为这是一个进口的电机,在国内使用或多或少都有点点问题,需要扩展相关的功能,所以再遗产系统再工程的时候需要做到,对扩展开放,这样才可以根据最新的情况增添功能。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:202-0-15,如有侵权请联系 cloudcommunity@tencent 删除系统语法编译程序工程师

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1150192.html

相关标签:无
上传时间: 2025-07-19 21:35:03
留言与评论(共有 12 条评论)
本站网友 福建电信网速测试
27分钟前 发表
这样才可以根据最新的情况增添功能
本站网友 楚州租房
21分钟前 发表
但是另一块地方又有问题了​
本站网友 天津海港城
29分钟前 发表
聘请外方工程师过来迅速定位后
本站网友 鹤山房产网
15分钟前 发表
因为这是一个进口的电机
本站网友 沈阳北大青鸟
12分钟前 发表
本站网友 电驴资源
0秒前 发表
工程师和电机遵守了开闭原则
本站网友 沫忆失忆
24分钟前 发表
本站网友 许智伟
17分钟前 发表
而且写代码的时候需要做到对修改封闭
本站网友 好域名
26分钟前 发表
因为擅自修改代码
本站网友 衣服上的油渍怎么洗
9分钟前 发表
工程师可以很快到故障是因为
本站网友 做梦梦到僵尸
7分钟前 发表
聘请外方工程师过来迅速定位后