设计模式[10]-Mediator

简介:

Type: Behavioral

Mediator: 定义一个对象,包装一系列对象如何交互。这些对象不必明确地互相引用,从而促进松散耦合,并且能够使你独立地改变他们之间的交互。


#include <iostream>
using namespace std;

class Mediator
{
public:
    virtual void inform(int id)=0;
};


class Colleague
{
public:
    virtual void update()=0;
};


class ConcreteColleague: public Colleague
{
public:
    ConcreteColleague(int id, Mediator* pMediator): mId(id),m_pMediator(pMediator){};
    void update()
    {
        cout<<"ConcreteColleague"<<mId<<"update"<<endl;
    };
    void send()
    {
        cout<<"ConcreteColleague"<<mId<<"send"<<endl;
        if(mId == 1)
            m_pMediator->inform(2);
        else if(mId == 2)
            m_pMediator->inform(1);
    };
private:
    int mId;
    Mediator* m_pMediator; 
};


class ConcreteMediator: public Mediator
{
public:
    void inform(int id)
    {
        if(id==1){
            m_pColleague1->update();
        } else if(id == 2){
            m_pColleague2->update();
        }
    };
    void setColleague1(Colleague* pColleague)
    {
        m_pColleague1 = pColleague;
    };
    void setColleague2(Colleague* pColleague)
    {
        m_pColleague2 = pColleague;
    };
private:
    Colleague* m_pColleague1;
    Colleague* m_pColleague2;
};


int main()
{
    ConcreteMediator* pMediator = new ConcreteMediator();
    ConcreteColleague* pColleague1 = new ConcreteColleague(1, pMediator);
    ConcreteColleague* pColleague2 = new ConcreteColleague(2, pMediator);
    pMediator->setColleague1(pColleague1);
    pMediator->setColleague2(pColleague2);    pColleague1->send();
    pColleague2->send();    system("pause");
    return 0;
}

目录
相关文章
|
6月前
|
设计模式 前端开发
设计模式21 - 中介者模式【【Mediator Pattern】
设计模式21 - 中介者模式【【Mediator Pattern】
23 0
|
5月前
|
设计模式 前端开发 uml
认真学习设计模式之中介者模式(Mediator Pattern)
认真学习设计模式之中介者模式(Mediator Pattern)
31 0
|
6月前
|
设计模式 前端开发 调度
设计模式~调停者(中介者)模式(Mediator)-21
用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 调停者(中介者)模式(Mediator) (1)优点 (2)缺点 (3)使用场景 (4)注意事项: (5)应用实例: 代码
29 1
|
6月前
|
设计模式 前端开发 Java
【设计模式——学习笔记】23种设计模式——中介者模式Mediator(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——中介者模式Mediator(原理讲解+应用场景介绍+案例介绍+Java代码实现)
45 0
|
9月前
|
设计模式 前端开发 Java
Java中23种面试常考的设计模式之中介者模式(Mediator)---行为型模式
Java中23种面试常考的设计模式之中介者模式(Mediator)---行为型模式
65 1
|
11月前
|
设计模式 Java
Java设计模式-中介者模式(Mediator)
Java设计模式-中介者模式(Mediator)
|
设计模式
设计模式- Facade门面模式和Mediator调停者模式
设计模式- Facade门面模式和Mediator调停者模式
|
设计模式 前端开发
从零开始学设计模式(十四):中介者模式(Mediator Pattern)
中介者模式(Mediator Pattern)又被称为调停者模式。它定义了一个中介对象来封装一系列对象之间的交互关系。中介者使各个对象之间不需要显式地相互引用,从而使耦合性降低,而且可以独立地改变它们之间的交互行为。它是一种对象行为型模式。
190 0
从零开始学设计模式(十四):中介者模式(Mediator Pattern)
|
设计模式
【愚公系列】2021年12月 二十三种设计模式(十七)-中介者模式(Mediator Pattern)
【愚公系列】2021年12月 二十三种设计模式(十七)-中介者模式(Mediator Pattern)
100 0
【愚公系列】2021年12月 二十三种设计模式(十七)-中介者模式(Mediator Pattern)
|
设计模式 Java
浅谈JAVA设计模式之——中介者模式(Mediator)
用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
140 0
浅谈JAVA设计模式之——中介者模式(Mediator)