面向对象——开放封闭原则

本文探讨了开放封闭原则在软件设计中的应用,通过实例说明如何通过抽象类和继承机制来保持代码的可扩展性,避免因修改已有的代码结构导致的问题。通过计算器案例,解释如何新增运算功能时只增加类而不影响原有代码,实现低耦合和灵活扩展。
摘要由CSDN通过智能技术生成

开放?封闭?

什么是开放封闭原则?

这里的开放和封闭,并不是传统意义上的开放和封闭(例如闭关锁国,改革开放),而是指在设计类的时候,对这些类做出的一些要求

开放指的是可拓展,封闭指的是不修改

为什么这样做?

因为修改肯定是令众多人头疼的一个问题

我以前做数学题的时候,老师一直强调说:“你们要是考试的时候做完了,要重新做一次,检查一下前面有没有做错”,可是我每一次检查修改的时候,总是会出错,原本对的题目,最终都荣获老师的亲笔大红叉

写软件也是一样,谁希望去修改已经写好的一大堆东西呢?尤其是当工程量非常庞大,成千上万行那种

这样做的优势

这里面最核心的一个原则就是:对于原本已经写好的,不修改,如果需要增加新的内容,则多写一个类

看回原来在简单工厂模式那篇文章里面提到的那个计算器,那里面有一张图,描述了这样的原则,把计算类写成一个抽象类,在里面写 3 个纯虚函数,分别是获取 2 个进行运算的变量,一个获取结果的函数,那么只需要让不同的运算类去继承并且实现相应的纯虚函数即可

这样做的话,如果加减乘除四则运算已经写好了,则不需要去管他,如果需要增加新的运算类型,只需要添加新的运算类,继承这个抽象类并且实现相应的纯虚函数即可

那么,他们是不是就满足了开放封闭原则,增加新的运算功能属于可拓展,已经写好的运算类(在经过测试,没有问题之后)不需要修改,其他地方的什么改动也不会影响到他

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值