首页
友情链接
关于
Search
1
实验四 数据库设计
122 阅读
2
头歌Java实验五
114 阅读
3
学习通Java作业四
60 阅读
4
C++设计模式之开闭原则笔记
33 阅读
技术
编程
电脑
服务器
资源
下载
专题
考研
作业
默认分类
登录
/
注册
Search
标签搜索
头歌
Java
编程
作业
yzdev
累计撰写
2
篇文章
累计收到
4
条评论
今日撰写
0
篇文章
首页
栏目
技术
编程
电脑
服务器
资源
下载
专题
考研
作业
默认分类
页面
友情链接
关于
用户登录
登录
注册
搜索到
3
篇与
的结果
2023-05-02
C++设计模式之开闭原则笔记
一.什么是开闭原则定义:一个软件实体如类,模块和函数应该对扩展开放,对修改关闭。说白了就是当一个产品做好的时候,如果有新的功能加入我们应该尽量做到去扩展而不是去修改已经设计好的功能或结构,比如笔记本电脑,厂家生产一台笔记本,如果我们想使用鼠标那么我们只需要使用厂家给我们的接口去连接上自己买好的或者做好的usb就行二.为什么会有开闭原则有这样一个登录的界面需求loginFrom是登录界面而Cirlebutton是界面中的一个圆形按钮,于是我飞快地设计好了于是我把设计好的类发给项目组长,组长看了我两分钟手上拳头紧握,几欲动手,最后打回。而没学过设计模式的我不明所以下面是我写好的代码class Cirlebutton { public: void dispaly() { ...... } }; class loginFrom { Cirlebutton btA; public: void displays() { ........ } };可以看出,我虽然实现了基本需求但是如果需求有变更,想改一个新的方形buton那我是不是得机械的把loginfrom中的Cirlebutton改为RectangeButton呢?每次按钮有变化我是不是又得改回去,所以程序可扩展性极差,对其他人也十分不友好,于是今天学了设计模式的我花了点时间改好了代码,小心的提交了代码,随后傲娇的组长面带喜色。class AbstractButton { public: virtual void displays() { ......... }; }; class Cirlebutton : public AbstractButton { public: void displays() { ............ } }; class loginFrom { AbstractButton* btA; public: void setbt(AbstractButton* btAa) { this->btA = btAa; }; void displays() { this->btA->displays(); } };那么这段代买究竟有何玄机可以看到这段代码增加了一个抽象父类AbstractButton作为接口,子类Cirlebutton去实现AbstractButton,同时重写dispalys方法以及父类增加新的关键字virtual 去修饰dispalys抽象方法三.以及怎么使用开闭原则在Java中我们可以定于interface面向接口编程我们只需要implement方法但是C++中并没有这样的关键字,C++可以通过关键字virtual定义虚函数或者纯虚函数的方式实现接口,然后子类继承这个接口类并且定义虚函数的功能就可以了,这样我们每次更改业务需求时我们只需要定义一个新的button去继承就行了
2023年05月02日
33 阅读
1 评论
1 点赞
2023-04-27
学习通Java作业四
计科2020级头歌java作业参考答案
2023年04月27日
60 阅读
1 评论
0 点赞
2023-04-24
头歌Java实验五
计科2020级Java实验五参考答案
2023年04月24日
114 阅读
3 评论
1 点赞