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;

}

 

你可能感兴趣的:(media)