![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
雨者
纸上得来终觉浅,绝知此事要躬行。
展开
-
C++设计模式 ==> 装饰(者)模式
简介装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式使用对象嵌套的思想,实现对一个对象动态地进行选择性的属性赋予与去除,例如有一篇固定的文本,我们可以给它装饰上“词汇过滤”与“文本加密”两个属性,但同时也要注意装饰顺序:例如文本如果先进行加密操作就没法进行词汇过滤的操作了。 下面演示一个简单的装饰模式...原创 2018-08-11 00:40:21 · 321 阅读 · 0 评论 -
C++设计模式 ==> 工厂模式
简介在之前,笔者曾简单介绍过简单工厂模式,我们说过简单工厂模式可以使用工厂类根据需求动态生成子类对象,从而方便了未来对算法进行维护和扩展。而工厂模式相较之于简单工厂模式更为复杂,工厂模式对工厂类进行了详细的子类化,为每一个算法都建立了独立的工厂,这样的优点在于可以在算法扩展的时候避免修改总工厂类,而只要生成相应的子类就可以了,尽可能避免了违背“开闭原则”的情况,但缺点在于这样switch一类的...原创 2018-08-15 00:08:41 · 328 阅读 · 0 评论 -
C++设计模式 ==> 代理模式
简介代理模式,顾名思义,就是让一个代理替代真实事物做事情,切结果是是等效的,就相当于现实世界中的中介。在设计模式中,代理模式需要一个代理类来实例化真实事物类的对象,然后可以创建代理对象代替真实对象处理一些事情。代理模式可以起到隔离真实事物类的作用,在网络通信等后面有诸多应用。 下面我们使用一个简单的代码样例来演示一下代理模式的工作过程:假设有一位小A(RealPersuitePeople类)...原创 2018-08-12 03:12:39 · 977 阅读 · 0 评论 -
C++设计模式 ==> 简单工厂模式
简述工厂模式的核心在于使用一个工厂类根据需求动态生成子类对象,以计算器程序作为例子,加减乘除都分别作为运算类的子类,然后让工厂类根据要求动态实例化子类。图示代码实现///////////////////////////////// @ FileName : Operation.h// @ Date : 2018-08-06 18:04/////////////...原创 2018-08-08 21:51:58 · 282 阅读 · 0 评论 -
C++设计模式 ==> 策略模式与简单工厂模式结合
简介策略模式相较之于简单工厂模式适用于生产方法经常变化且方法较为繁多的情况,因为生产方法时常变化就会需要频繁修改工厂类,违背了开闭原则,这时就可以用策略类由客户端根据需求动态切换策略。且策略模式通过进一步封装了代码细节,没有像简单工厂模式那样在客户端创建详细的对象,而把任务交给了策略类去执行,所以客户端不会知道太多算法实现的细节。当然,在更多的情况下,策略模式一般可以与简单工厂模式并用,将进行...原创 2018-08-09 15:54:01 · 864 阅读 · 0 评论 -
C++设计模式 ==> 原型模式
简介        所谓原型模式就是用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。举一个简单的例子,一个人想要批量分发自己的名片,然而名片千篇一律,只是偶原创 2018-08-17 19:35:30 · 519 阅读 · 0 评论