Mediator

#include <iostream>

using namespace std;



class ObjectA
{
public:
    void Whoami() { cout<<"ObjectA"<<endl; }
};

class ObjectB
{
public:
    void Whoami() { cout<<"ObjectB"<<endl; }
};

class ObjectC
{
public:
    void Whoami() { cout<<"ObjectC"<<endl; }
};


class Mediator
{
public:
    void Set(ObjectA* pObjectA, ObjectB* pObjectB, ObjectC* pObjectC) { m_pObjectA = pObjectA; m_pObjectB = pObjectB; m_pObjectC = pObjectC; }
    void Interact1() { m_pObjectA->Whoami(); m_pObjectB->Whoami(); }
    void Interact2() { m_pObjectB->Whoami(); m_pObjectC->Whoami(); }
    void Interact3() { m_pObjectA->Whoami(); m_pObjectC->Whoami(); }
    
private:
    ObjectA* m_pObjectA;
    ObjectB* m_pObjectB;
    ObjectC* m_pObjectC;
};



int main(int argc, char *argv[])
{
    ObjectA objA;
    ObjectB objB;
    ObjectC objC;

    
    Mediator mediator;
    mediator.Set(&objA, &objB, &objC);
    mediator.Interact1();
    mediator.Interact2();
    mediator.Interact3();

    return 0;
}

 

posted @ 2014-12-19 09:29  stanley19861028  阅读(138)  评论(0编辑  收藏  举报