随笔分类 -  Design Pattern

摘要:1 <?php 2 /** 3 * 中介者模式 4 * 5 * 用一个中介对象来封装一系列的对象交互,使各对象不需要显式地相互引用从而使其耦合松散,而且可以独立地改变它们之间的交互 6 */ 7 abstract class Mediator 8 { 9 abstract public function send($message,$colleague);10 }11 12 abstract class Colleague13 {14 private $_mediator = null;15 16 public function Colleague($medi... 阅读全文
posted @ 2011-10-11 10:49 Charliee 阅读(214) 评论(0) 推荐(0)
摘要:一、功能 保证一个类仅有一个实例。二、结构图三、优缺点 Singleton模式是做为"全局变量"的替代品出现的。所以它具有全局变量的特点:全局可见、贯穿应用程序的整个生命期,它也具有全局变量不具备的性质:同类型的对象实例只可能有一个。四、实现class Singleton{public: static Singleton* Instance();protected: Singleton() { }private: static Singleton* _instance; Singleton(const Singleton&); Singleton& oper 阅读全文
posted @ 2011-10-11 10:42 Charliee 阅读(125) 评论(0) 推荐(0)
摘要:作用:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。比如,QQ中你的好友上线下,他们的头像亮起,熄灭。以下是参考代码#include <Windows.h>#include <list>using namespace std;class Subject;class Observer {public: virtual ~Observer(); virtual void Update(Subject* theChangedSubject) = 0;protected: Observer();};class Subje 阅读全文
posted @ 2011-10-11 10:40 Charliee 阅读(171) 评论(0) 推荐(0)
摘要:一、功能 将抽象部分与它的实现部分分离,使它们都可以独立地变化。二、结构图三、示例代码namespace DesignPattern_Bridge{ // class Implementor class Implementor { public: virtual void OperationImp() = 0; }; // class ConcreteImplementorA class ConcreteImplementorA : public Implementor { public: virtual void Ope... 阅读全文
posted @ 2011-10-11 10:35 Charliee 阅读(211) 评论(0) 推荐(0)