![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++ patterns 2010-11-26
文章平均质量分 63
zhangxiaonanwin
这个作者很懒,什么都没留下…
展开
-
工厂模式
<br />#include <cstdlib><br />#include <iostream><br />using namespace std;<br />class Product<br />{<br />public:<br /> virtual ~Product(){cout<<"Product 基类析构"<<endl;}<br /> virtual void Do() = 0;<br />};<br />class Product1:public Product<br />{<br />p原创 2010-11-26 09:57:00 · 345 阅读 · 0 评论 -
Memento
很好的解决撤销问题原创 2010-12-04 14:51:00 · 392 阅读 · 0 评论 -
Strategy 策略模式
Strategy 策略模式,策略结构的基础上还要有一个context委托类直接和client互动原创 2010-12-03 11:40:00 · 543 阅读 · 0 评论 -
Observer
本例使用模版写的观察者模式此模式的最大用途就是一个Subject发生变化时,影响到与之相关的所有的observerVS2010可以编译通过,DEV4.9.9.2及VC6编不过原创 2010-12-04 11:40:00 · 391 阅读 · 0 评论 -
Iterator
Iterator 就是要提供另一个类来对自己类进行遍历原创 2010-12-05 21:58:00 · 432 阅读 · 0 评论 -
Mediator
中介者设计模式,将两个或多个不相干对象的联系封装到一个中介者对象中,然后客户端只跟中介者打交道,都不知道中介者所处理的几个对象的存在中介者还可以对对象之间的传递数据进行修饰,使得对象之间的交流更顺畅,少出现摩擦原创 2010-12-06 09:56:00 · 360 阅读 · 0 评论 -
Visitor 访问者
访问者设计模式,就是一类主动方访问另一类被动方,添加一类主动方,会非常方便快捷添加一类被动方,就会比较复杂原创 2010-12-07 09:49:00 · 333 阅读 · 0 评论 -
Command 命令模式
命令模式,根据说明很容易写出列子但不是很明白具体它在应用时可以显示什么样的威力命令模式主要是把调用和实现解耦。解耦后可以轻松实现do和undo还没有看到关于这方面较好的例子期待中。。。原创 2010-12-07 14:26:00 · 343 阅读 · 0 评论 -
Interpret 模式
Interpret 模式主要用于编译器编译各种表达式现在不理解也没关系,以后用的着,先储备着2010年11月26日 2010年12月7日 完成第四遍设计模式用时间 12天原创 2010-12-07 14:55:00 · 708 阅读 · 0 评论 -
单件模式
<br />#include <cstdlib><br />#include <iostream><br />using namespace std;<br />class Singleton<br />{<br /> Singleton(){}<br /> Singleton(Singleton&a);<br /> Singleton& operator=(const Singleton&);<br />public:<br /> ~Singleton(){<br /> if(pSing !原创 2010-11-26 09:56:00 · 344 阅读 · 0 评论 -
State 模式
通过写这个例子,我觉得状态模式适合写游戏原创 2010-12-03 15:37:00 · 696 阅读 · 1 评论 -
Facade模式
Facade模式最大的威力,是在多客户访问的时候才会,凸显,如果只有一个客户端访问,Facade反而效果不明显原创 2010-12-02 15:10:00 · 521 阅读 · 0 评论 -
chain of responsebility 职责链
把操作相同但又有所差异的类连成一条链,调用时,顺序执行,是谁的谁来处理原创 2010-12-03 22:37:00 · 1018 阅读 · 0 评论 -
builder模式
<br />对所有组件统一封装,并按一定的顺序组装使用<br />#include <cstdlib><br />#include <iostream><br />using namespace std;<br />class Sql<br />{<br />public:<br /> virtual ~Sql(){cout<<"Sql 基类析构"<<endl;}<br /> virtual void Do() = 0;<br />};<br />class SqlAccess:public Sql<b原创 2010-11-26 13:37:00 · 354 阅读 · 0 评论 -
Prototype原型克隆
<br />#include <cstdlib><br />#include <iostream><br />using namespace std;<br />namespace Graphic<br />{<br />class Obj<br />{<br /> std::string name;<br />public:<br /> std::string GetName(){return name;}<br /> virtual void SetName(std::string& str){n原创 2010-11-26 22:20:00 · 336 阅读 · 0 评论 -
Adpater
<br />利用多继承使target类拥有了Adpatee的功能<br />#include <cstdlib><br />#include <iostream><br />using namespace std;<br />class Target<br />{<br />public:<br /> virtual ~Target(){cout<<"Target 基类析构"<<endl;}<br /> virtual void TargetDo(){cout<<"Target do sth."<<en原创 2010-11-27 08:56:00 · 461 阅读 · 0 评论 -
桥接模式
#include #include using namespace std;class DrawImp{public: virtual ~DrawImp(){coutDrawLine();} void DrawRect(){imp->DrawRect();}};class DrawIcon:public Draw{public: DrawIcon(DrawImp* i):Draw(i){} virtual ~DrawIcon(){coutDra原创 2010-11-29 00:04:00 · 345 阅读 · 0 评论 -
Compsite模式
<br />实现要点,component,composite,leaf这三个类都要实现,<br />其它的都需要继承自两个子类<br />#include <cstdlib><br />#include <iostream><br />#include <string><br />#include <list><br />using namespace std;<br />class Component<br />{<br />protected:<br /> int value;<br /> stri原创 2010-11-30 22:48:00 · 1254 阅读 · 0 评论 -
Decorator 装饰
<br />通过嵌套可以随意的添加特征<br />#include <cstdlib><br />#include <iostream><br />using namespace std;<br />/*class Component<br />{<br />public:<br /> virtual Operation() = 0;<br />};<br />class ConcreteComponent:public Component<br />{<br />public:<br /> virtu原创 2010-12-01 10:29:00 · 484 阅读 · 0 评论 -
Proxy 代理模式
<br />关键,代理起到站位作用,等到真正用的时候再真正的去实例化真正的类<br />#include <cstdlib><br />#include <iostream><br />using namespace std;<br />class Subject<br />{<br />public:<br /> virtual ~Subject(){cout<<"析构Subject基类"<<endl;}<br /> virtual void Do() = 0;<br />};<br />class原创 2010-12-01 21:00:00 · 481 阅读 · 0 评论 -
TemplateMethod模板方法模式
<br />关键在于把一个算法分解为几个非常固定的步骤,顺序是可以在子类中得到改变的<br />#include <cstdlib><br />#include <iostream><br />using namespace std;<br />class Template<br />{<br />public:<br /> virtual ~Template(){cout<<"Tempalte基类析构"<<endl;}<br /> void BiaoBai()<br /> {<br /> Sa原创 2010-12-01 21:25:00 · 422 阅读 · 0 评论 -
FlyWeight 享元模式
<br />#include <cstdlib><br />#include <iostream><br />#include <vector><br />using namespace std;<br />class FlyWeight<br />{<br />protected:<br /> std::string m_name;<br />public:<br /> FlyWeight(std::string str):m_name(str){}<br /> virtual ~FlyWeight原创 2010-12-02 10:03:00 · 506 阅读 · 0 评论 -
抽象工厂
<br />抽象工厂最主要的特点就是,一个工厂产生一类相关对象,<br />这些对象互相依赖,共同发挥作用<br />#include <cstdlib><br />#include <iostream><br />using namespace std;<br />class Sql<br />{<br />public:<br /> virtual ~Sql(){cout<<"Sql 基类析构"<<endl;}<br /> virtual void Do() = 0;<br />};<br />cl原创 2010-11-26 00:09:00 · 391 阅读 · 0 评论