/** * mediator.h * Implemented by Blueprint Technologies, Inc. */ #ifndef _mediator_h #define _mediator_h /** * Forward declaration. */ class Mediator; /** * Each Colleague class knows its Mediator object. Each colleague * communicates with its mediator whenever it would have * otherwise communicated with another colleague. */ class Colleague { private: Mediator* mediator; public: void setMediator( Mediator* mediator ) { this -> mediator = mediator; }; Mediator* getMediator() { return mediator; }; }; /** * Each Colleague class knows its Mediator object. Each colleague * communicates with its mediator whenever it would have * otherwise communicated with another colleague. */ class ConcreteColleague1: public Colleague { }; /** * Each Colleague class knows its Mediator object. Each colleague * communicates with its mediator whenever it would have * otherwise communicated with another colleague. */ class ConcreteColleague2: public Colleague { }; /** * Defines an interface for communcating with Colleague objects. */ class Mediator { }; /** * Implements cooperative behavior by coordinating Colleague * objects. Knows and maintains its colleagues. */ class ConcreteMediator: public Mediator { private: Colleague* colleague1; Colleague* colleague2; public: void setColleague1( Colleague* colleague ) { colleague1 = colleague; }; void setColleague2( Colleague* colleague ) { colleague2 = colleague; }; Colleague* getColleague1() { return colleague1; }; Colleague* getColleague2() { return colleague2; }; }; #endif