![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
迷途小码
大数据及后台开发 python|scala|c|java|go
展开
-
Strategy策略模式
设计模式C++学习笔记之一(Strategy策略模式)无意中,从网上下到一本电子书《24种设计模式介绍与6大设计原则》,很好奇这里有24种设计模式,印象中GOF写的《设计模式》(Design Patterns),好像只有23种吧。运行起来一看,还真挺吸引咱的,里面提到的例子都很有趣。很感谢作者写出这样好的例子来,我的目的是把作者提到的例子用C++来实现。写这本书的作者是:cbf4life,转载 2013-07-22 11:11:09 · 788 阅读 · 0 评论 -
享元模式
用来解决上述问题的一个合理的解决方案就是享元模式。那么什么是享元模式呢?(1)享元模式定义 (2)应用享元模式来解决的思路仔细观察和分析上面的授权信息,会发现有一些数据是重复出现的,比如:人员列表、薪资数据、查看、修改等等。至于人员相关的数据,考虑到每个描述授权的对象都是和某个人员相关的,所以存放的时候,会把相同人员的授权信息组织在一起,就不去考虑人员数据的重复性了。 现转载 2013-08-30 15:57:19 · 910 阅读 · 0 评论 -
解释器模式
用来解决上述问题的一个合理的解决方案,就是使用解释器模式。那么什么是解释器模式呢?(1)解释器模式定义 这里的文法,简单点说就是我们俗称的“语法规则”。(2)应用解释器模式来解决的思路 要想解决当xml的结构发生改变后,不用修改解析部分的代码,一个自然的思路就是要把解析部分的代码写成公共的,而且还要是通用的,能够满足各种xml取值的需要,比如:获取单个转载 2013-08-30 11:56:49 · 942 阅读 · 0 评论 -
Factory Method工厂方法模式
设计模式C++学习笔记之五(Factory Method工厂方法模式)工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。这个例子更详细的内容及说明可以参考原作者博客:cbf转载 2013-07-28 11:32:42 · 738 阅读 · 0 评论 -
Singleton单例模式
设计模式C++学习笔记之三(Singleton单例模式)单例模式看起来也蛮简单的,就是在系统中只允许产生这个类的一个实例,既然这么简单,就直接贴代码了。更详细的内容及说明可以参考原作者博客:cbf4life.cnblogs.com。3.1.解释main(),大臣CEmperor,需要单例的类说明:很多大臣拜见的皇帝,只有一个。体现在面向对象方面,CEmperor定义一个静态转载 2013-07-28 11:28:45 · 808 阅读 · 0 评论 -
Multition多例模式
设计模式C++学习笔记之四(Multition多例模式)多例模式,这个在GOF的模式设计里没有提到,但在实际工作中确实会用到。更详细的内容及说明可以参考原作者博客:cbf4life.cnblogs.com。4.1.解释main(),客户略说明:和单例基本一样,是有个数限制的单例。如果对于产生的实例个数没有限制,那就不是多例了,和普通的类没有区别。举例:曾经开发过一个从服转载 2013-07-28 11:31:59 · 946 阅读 · 0 评论 -
Command命令模式
设计模式C++学习笔记之十二(Command命令模式)命令模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。应该是一个比较简单的模式了。 12.1.解释 main(),客户 CInvoker,命令接收者,如项目经理 IGroup,执行者接口 CRequirementGroup,实际执行者之一C转载 2013-08-02 14:57:14 · 843 阅读 · 0 评论 -
Builder建造者模式
设计模式C++学习笔记之十(Builder建造者模式)建造者模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。一段晦涩难懂的文字,实现创建不同表示的方法就是给创建的过程传入创建的参数。详细的还是看代码吧。10.1.解释main(),客户CCarModel,产品模型CBenzModel,奔驰模型CBMWModel,宝马模型ICarBuil转载 2013-08-02 14:27:03 · 559 阅读 · 0 评论 -
AbstractFactory抽象工厂模式
设计模式C++学习笔记之七(AbstractFactory抽象工厂模式)抽象工厂,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。对于工厂方法来说,抽象工厂可实现一系列产品的生产,抽象工厂更注重产品的组合。看代码:7.1.解释main(),女娲IHuman,产品接口CYellowHuman,抽象产品之一CYellowFemaleHuman,具体产转载 2013-08-01 16:09:07 · 598 阅读 · 0 评论 -
Template Method模板方法模式
设计模式C++学习笔记之九(Template Method模板方法模式)模板模式也是相当简单的一种模式,而且是比较常用的。模板模式是定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。cbf4life举的例子是悍马车模型,更详细的例子说明可以参考原作者博客:cbf4life.cnblogs.com转载 2013-08-01 16:59:57 · 623 阅读 · 0 评论 -
Adapter适配器模式
设计模式C++学习笔记之八(Adapter适配器模式)适配器模式,使用之处比较特殊,不属于常规设计模式,主要用于不同系统之间的处理。是将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。也是一个比较简单的模式,直接上代码了。看代码:8.1.解释main(),主程序IUserInfo,本系统内接口CUse转载 2013-08-01 16:51:07 · 680 阅读 · 0 评论 -
Proxy代理模式
设计模式C++学习笔记之二(Proxy代理模式)代理,一看名字就知道这只是个中介而已,真实的执行者在代理的后面呢。cbf4life在他的书里提的例子也很有趣,更详细的内容及说明可以参考原作者博客:cbf4life.cnblogs.com。现在贴代码,以方便随用随取。2.1.解释main(),西门庆IKindWomen,接口CWangPo,代理CPanJinLian,实际转载 2013-07-23 13:57:41 · 808 阅读 · 0 评论 -
Facade门面模式
设计模式C++学习笔记之六(Facade门面模式)Facade门面模式,也是比较常用的一种模式,基本上所有软件系统中都会用到。GOF在《设计模式》一书中给出如下定义:为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。简单说,就是将复杂的逻辑封装起来,对外公开简单的接口,由客户程序调用。这里举了一个发送邮件的例子,我们理解为转载 2013-07-29 15:01:09 · 541 阅读 · 0 评论 -
备忘录模式
备忘录模式定义 一个备忘录是一个对象,它存储另一个对象在某个瞬间的内部状态,后者被称为备忘录的原发器。(2)应用备忘录模式来解决的思路 仔细分析上面的示例功能,需要在运行期间捕获模拟流程运行的对象的内部状态,这些需要捕获的内部状态就是它运行第一个阶段产生的内部数据,并且在该对象之外来保存这些状态,因为在后面它有不同的运行方案。但是这些不同的运行方案需要的初始数据是一样的,都是转载 2013-08-30 16:28:37 · 700 阅读 · 0 评论