![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++设计模式
文章平均质量分 78
sky0942
这个作者很懒,什么都没留下…
展开
-
C++ 06装饰模式
装饰模式(Decorator):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。装饰模式的UML图: Component是定义一个对象接口,可以给这些对象动态添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator是装饰的抽象类,继承了Component,从外来类扩展Component类的功原创 2015-11-16 16:54:54 · 554 阅读 · 0 评论 -
C++ 14观察者模式
观察者模式又叫发布-订阅(Publish/Subscribe)模式。 观察者模式的定义:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主体对象在状态发生改变时,会通知所有观察者对象,使它们能够自动更新自己。观察者模式结构图如下:Subject类,它把所有对观察者对象的引用保存在一个列表(list或vector)里,每个主题都可以有原创 2015-12-10 11:28:22 · 434 阅读 · 1 评论 -
C++ 10模板方法模式
模板方法模式,首先定义一个操作中的算法的骨架,而将一些算法细节延迟到子类中实现。模板方法使得子类不改变一个算法的结构同时又可重定义该算法的某些特定步骤。模板方法结构图:AbstractClass类,实现了一个模板方法,定义了算法的骨架(TemplateMethod函数中),primitiveOperation方法是虚函数,子类中要重新实现算法中一个步骤的细节。ConcreteC原创 2015-12-10 15:22:30 · 452 阅读 · 0 评论 -
C++ 09原型模式
原型模式(Prototype)-------用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 原型模式的结构图Prototype原型类,声明一个克隆自身的接口ConcretePrototype具体原型类,实现一个克隆自原创 2015-11-19 16:19:11 · 653 阅读 · 0 评论 -
C++ 策略模式
策略模式(strategy):它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。策略模式的结构图:Strategy:策略类,定义所有支持的算法的公共接口。ConcreteStrategy:具体策略类,封装了具体的算法或行为,继承于Strategy。Context:上线文类,用一个Strategy来配置,维护一个对Strat原创 2015-12-13 21:44:14 · 481 阅读 · 0 评论 -
C++ 01简单工厂模式
下文是关于一个计算器类的实现,设计计算器采用了简单工厂模式,定义一个工厂类,通过工厂类中的createOperate函数做逻辑判断,来调用具体的计算器类。简单工厂模式结构图如下:代码实现如下:#include#includeusing namespace std;//抽象运算类class Operation{private: double numberA = 0原创 2015-11-20 20:02:32 · 436 阅读 · 0 评论 -
C++ 08工厂方法模式
工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。下面还是举例怎样设计一个计算器。结构图如下:请自觉的比较 简单工厂模式和工厂方法模式的异同。直接上代码:#include#includeusing namespace std;//抽象运算类class Operat原创 2015-11-20 20:23:42 · 401 阅读 · 0 评论 -
C++ 18备忘录模式
备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。备忘录模式结构图:Originator类,负责闯将一个备忘录Memento,用以记录当前时刻它的内部状态,并可使用备忘录回复内部状态。MeMento类,负责存储Originator对象的内部状态,并可防止Originator以外原创 2015-12-14 10:30:38 · 413 阅读 · 0 评论