求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
 
 
     
   
    全部     工程实例     标准规范     名校讲义     知识库    
 
 

C语言和设计模式 教程
开篇
单件模式
原型模式
组合模式
模板模式
工厂模式
责任链模式
抽象工厂模式
迭代器模式
外观模式
代理模式
享元模式
装饰模式
适配器模式
策略模式
中介者模式
建造者模式
桥接模式
观察者模式
备忘录模式
解释器模式
命令模式
状态模式
访问者模式
继承、封装、多态
 
 

中介者模式

    您可以捐助,支持我们的公益事业。

金额: 1元 10元 50元

姓名:

邮件:

电话:

公司:

说明:

认证码: 验证码,看不清楚?请点击刷新验证码 必填



 
 捐助

中介者模式,听上去有一点陌生。但是,只要我给朋友们打个比方就明白了。早先自由恋爱没有现在那么普遍的时候,男女之间的相识还是需要通过媒婆之间才能相互认识。男孩对女方有什么要求,可以通过媒婆向女方提出来;当然,女方有什么要求也可以通过媒婆向男方提出来。所以,中介者模式在我看来,就是媒婆模式。

typedef struct _Mediator  
{
People* man;
People* woman;
}Mediator;

上面的数据结构是给媒婆的,那么当然还有一个数据结构是给男方、女方的。

typedef struct _People  
{
Mediator* pMediator;

void (*request)(struct _People* pPeople);
void (*process)(struct _Peoplle* pPeople);
}People;

所以,这里我们看到的如果是男方的要求,那么这个要求应该女方去处理啊,怎么处理呢?

void man_request(struct _People* pPeople)  
{
assert(NULL != pPeople);

pPeople->pMediator->woman->process(pPeople->pMediator->woman);
}

上面做的是男方向女方提出的要求,所以女方也可以向男方提要求了。毕竟男女平等嘛。

void woman_request(struct _People* pPeople)  
{
assert(NULL != pPeople);

pPeople->pMediator->man->process(pPeople->pMediator->man);
}


    您可以捐助,支持我们的公益事业。

金额: 1元 10元 50元

姓名:

邮件:

电话:

公司:

说明:

认证码: 验证码,看不清楚?请点击刷新验证码 必填



 
 捐助