定义 用一个调停对象来封闭一系列的对象交互。
组成
1 抽象者调停者(Mediator)角色:调停者角色定义统一的接口用于各同事角色之间的通信。
2 具体调停者(Concrete Mediator)角色: 具体调停者角色通过协调各同事角色实现协作行为。为此它要知道并引用各个同事角色。
3 同事(Colleague)角色: 每一个同事角色都知道对应的具体调停者角色,而且与其他的同事通信的时候,一定要通过调停者角色协作。
Public Colleague{
Prvate:
Mediator mediator;
Public:
Colleague(Mediator mediator)
{
Mediator = mediator;
}
Mediator getMediator() const
{
Return mediator;
}
Virtual void action() = 0;
};
Class Landlord:public Colleague{
Void action()
{
Cout<<”进行房间资料交给中介操作,省略”;
}
};
Class Lodger:public Colleague{
Void action()
{
Cout<<”进行将租房需求交给中介等操作”;
}
};
Class Mediator{
Virtual void colleagueChanged(Colleague *colleague) = 0;
};
Class ConcreteMediator:public Mediator{
Private:
Landlord *landlord;
Lodger *lodger;
Void colleagueChanged(Colleague *colleague)
{
Landlord->action();
Lodger->action();
}
ConcreteMediator()
{
Landlord = new Landlord();
Lodger = new lodger();
}
~ ConcreteMediator()
{
Delete Landlord;
Delete Lodger;
}
};