您的位置:首页 > 其它

设计模式学习—Mediator(中介者)

2011-05-15 16:36 519 查看
意图:用一个中介对象来封装一系列的独享交互。中介者使得各对象不需要显式的相互引用,从而使得其耦合松散,而且可以独立的改变他们之间的交互.

适用性:

一组对象以定义好,但是通信复杂,相互依赖关系结构混乱

一个对象引用其他对象并且直接通信

想定制一个分布在多个类中的行为,但是又不想定义多个子类

示例

图:



示例程序:

//信息变化之后通知中介者,中介者来调用相关对象进行相应的控制

class CMediator
{
public:
CMediator();
public:

~CMediator(void);
public:
void InfoChanged(int id)

{
m_PTitle->SetId(id);
}
void SetTitle(CTitle*
pTitle)
{
m_PTitle = pTitle;
}
public:

void ShowTitle()
{
m_PTitle->Show();
}

private:
CTitle* m_PTitle;
};

#include "Mediator.h"
class CInfo
{
public:

CInfo();
public:
~CInfo(void);
public:
void
SetMediaotr(CMediator* pMediat)
{
this->m_pMedia =
pMediat;
}
virtual void Change(int newId)
{
id =
newId;
m_pMedia->InfoChanged(newId);
}
int
GetID()
{
return id;
}
private:
int
id;
CMediator* m_pMedia;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: