
设计模式
文章平均质量分 69
妍妍
Nerver give up!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Sigleton模式
意图:保证一个类仅有一个实例,并且提供一个访问它的全局访问点。让类自身负责保存它的唯一实例。Sigleton.h文件中:#include #include using namespace std;enum TypeName{ __Sigleton, __SigletonDerivedClass1, __SigletonDerivedClass2};原创 2012-12-18 13:59:44 · 710 阅读 · 2 评论 -
回忆以前项目中用过的Abstract Factory设计模式
用过的设计模式不多,对设计模式的理解也不好,所以用过的设计模式印象特别深刻,从中体会到设计模式带来的甜头。 记得当时一个项目,经过几代人员都没有整合完毕,原因是同一款产品的型号特别多,每种型号的控制码都不同,后来到了我的手上,用了抽象工厂,终于将产品整合完毕。具体怎么用的,不记得了。但是写了个小例子来说明当时的情况:class AbstractCard { public:原创 2012-11-30 09:28:24 · 738 阅读 · 2 评论 -
Template method模式
class AbstractClass{public: void templateMethod() { PrimitiveOperation1(); PrimitiveOperation2(); } virtual void PrimitiveOperation1()=0; virtual void PrimitiveOperation2()=0;};原创 2012-12-17 12:28:17 · 402 阅读 · 0 评论 -
Strategy模式
class AbstractStrategy{public: virtual void Algorithm(int data)=0; virtual ~AbstractStrategy() {}};class ConcreteStrategy1 : public AbstractStrategy{public: void Algorithm(int data) { cou原创 2012-12-17 13:31:18 · 436 阅读 · 0 评论 -
猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒
前几天看到有个朋友写的一篇blog题目如下:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。要求:(1)要有联动性,老鼠和人的行为是被动的。 (2)考虑可扩展性,猫叫声可能会引起其他的联动效应。我不是一个善于做题目的人,但是这个题目想到了观察者设计模式,猫是目标,老鼠和主人是观察者,在猫叫的时候,通知老鼠和主人行动。另外联动效应部分采用策略设计模式。这样如果有其他的原创 2012-12-21 17:55:28 · 4901 阅读 · 3 评论 -
Proxy模式
意图:为其他独享提供一种代理以控制这个对象的访问。适用性:(1)远程代理:为一个对象在不同的地址空间提供局部代表。(2)虚代理:根据需要创建开销很大的对象。(3)保护代理:控制对原始对象的访问。(4)智能指引:取代简单的指针,在访问对象时,执行一些附加操作,比如引用计数。结构如下:实现Gof的虚代理的例子:class Graphic{public: vir原创 2013-01-14 11:42:19 · 520 阅读 · 0 评论 -
shared_ptr用于Bridge模式和Factory模式
(1)用于Bridge模式:#include using namespace boost;class sample {private: class impl; boost::shared_ptr p;public: sample(); void print();};class sample::impl{public: void print() { cout原创 2013-01-14 15:39:39 · 633 阅读 · 0 评论