//中介者模式
/*abstract class Mediator{
public abstract void Send(String message,Colleague colleague);
}
abstract class Colleague{
protected Mediator mediator;
public Colleague(Mediator mediator) {
super();
this.mediator = mediator;
}
}
class ConcreteMediator extends Mediator{
private ConcreteColleague1 c1;
private ConcreteColleague2 c2;
public void setConcreteColleague1(ConcreteColleague1 c1){
this.c1=c1;
}
public void setConcreteColleague2(ConcreteColleague2 c2){
this.c2=c2;
}
public void Send(String message, Colleague colleague) {
// TODO Auto-generated method stub
if(colleague==c1) {
c1.Notify(message);
}
else {
c2.Notify(message);
}
}
}
class ConcreteColleague1 extends Colleague{
public ConcreteColleague1(Mediator mediator) {
super(mediator);
// TODO Auto-generated constructor stub
}
public void Send(String message) {
mediator.Send(message,this);
}
public void Notify(String message) {
System.out.println("同事1得到消息:"+message);
}
}
class ConcreteColleague2 extends Colleague{
public ConcreteColleague2(Mediator mediator) {
super(mediator);
// TODO Auto-generated constructor stub
}
public void Send(String message) {
mediator.Send(message,this);
}
public void Notify(String message) {
System.out.println("同事2得到消息:"+message);
}
}
public class Main {
public static void main(String args[])
{
ConcreteMediator m=new ConcreteMediator();
ConcreteColleague1 cc1=new ConcreteColleague1(m);
ConcreteColleague2 cc2=new ConcreteColleague2(m);
m.setConcreteColleague1(cc1);
m.setConcreteColleague2(cc2);
cc1.Send("你吃过饭了吗");
cc2.Send("没有呢,你打算请客?");
}
}*/
//安理会做中介
public class Main {
public static void main(String args[])
{
UnitedNationsSecurityCouncil unsc=new UnitedNationsSecurityCouncil();
USA uu=new USA(unsc);
Iraq ii=new Iraq(unsc);
unsc.setI1(ii);
unsc.setU1(uu);
ii.Send("不准研制核武器,否则要发动战争");
uu.Send("我们没有核武器,也不怕侵略");
}
}
abstract class UnitedNations{
public abstract void Send(String message,Country colleague);
}
abstract class Country{
protected UnitedNations u;
public Country(UnitedNations u) {
super();
this.u = u;
}
}
class USA extends Country{
public USA(UnitedNations u) {
super(u);
// TODO Auto-generated constructor stub
}
public void Send(String message) {
u.Send(message, this);
}
public void GetMessage(String message) {
System.out.println("美国获得对方消息:"+message);
}
}
class Iraq extends Country{
public Iraq(UnitedNations u) {
super(u);
// TODO Auto-generated constructor stub
}
public void Send(String message) {
u.Send(message, this);
}
public void GetMessage(String message) {
System.out.println("伊拉克获得对方消息:"+message);
}
}
class UnitedNationsSecurityCouncil extends UnitedNations{
private USA u1;
private Iraq i1;
public void setU1(USA u1) {
this.u1 = u1;
}
public void setI1(Iraq i1) {
this.i1 = i1;
}
public void Send(String message, Country colleague) {
// TODO Auto-generated method stub
if(colleague==i1) {
i1.GetMessage(message);
}
else {
u1.GetMessage(message);
}
}
}
中介者模式
最新推荐文章于 2024-08-12 14:40:42 发布