java中23种设计模式之19-中介者模式(mediator pattern)

abstract class AbstractColleague
{
public abstract void workSelf();
public abstract void requestOthersHelp();
}

class ColleagueA extends AbstractColleague
{
Mediator aMediator=new Mediator();
public void workSelf()
{
System.out.println("ColleagueA-->work");
}
public void requestOthersHelp()
{
System.out.println("ColleagueA-->request ColleagueB help");
aMediator.doRequest(this);
}
}

class ColleagueB extends AbstractColleague
{
Mediator aMediator=new Mediator();
public void workSelf()
{
System.out.println("ColleagueB-->work");
}
public void requestOthersHelp()
{
System.out.println("ColleagueB-->request ColleagueA help");
aMediator.doRequest(this);
}
}

class Mediator
{
AbstractColleague aAbstractColleague=null;
public void doRequest(AbstractColleague abstractColleague)
{
if(abstractColleague.getClass().equals(ColleagueA.class))
{
aAbstractColleague=new ColleagueB();
aAbstractColleague.workSelf();
}
else
{
aAbstractColleague=new ColleagueA();
aAbstractColleague.workSelf();
}
}

}

public class MediatorPatternTest
{
public static void main(String[] args)
{
AbstractColleague aColleagueA=new ColleagueA();
AbstractColleague aColleagueB=new ColleagueB();
//Mediator aMediator-new Mediator();

aColleagueA.workSelf();
aColleagueA.requestOthersHelp();
System.out.println("work done");

aColleagueB.workSelf();
aColleagueB.requestOthersHelp();
System.out.println("work done");
}

}

时间: 2024-10-17 15:24:48

java中23种设计模式之19-中介者模式(mediator pattern)的相关文章

java中23种设计模式之16-访问者模式(visitor pattern)

import java.util.ArrayList;import java.util.List;abstract class IVisitor{ public abstract void visit(Banana banana); public abstract void visit(Rice rice); public void visit(IElement iElement) { System.out.println("什么东西,怎么吃啊?"); }} class Human e

java中23种设计模式之9-建造者模式(builder pattern)

class Computer{ private String name=null; private String cpu=null; private String ddr=null; private String hdd=null; public void setName(String name) { this.name=name; } public void setCpu(String cpu) { this.cpu=cpu; } public void setDdr(String ddr)

java中23种设计模式之8-模板方法模式(template method pattern)

abstract class PhoneModel6Inch{ public void printPhoneInfo() { screenSize(); systemType(); colorType(); } protected final void screenSize() { System.out.print("6 inch,"); } abstract protected void systemType(); abstract void colorType(); }class

java中23种设计模式之20-备忘录模式(memento pattern)

abstract class Health{ private int blood; private int mana; public void setBlood(int blood) { this.blood=blood; } public int getBlood() { return blood; } public void setMana(int mana) { this.mana=mana; } public int getMana() { return mana; } public a

Java中23种设计模式(附代码样例)

一.设计模式分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式.结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式.行为型模式,共十一种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式.其实还有两类:并发型模式和线程池模式 二.设计模式的六大原则1.开闭原则(Open Close Principle)开闭原则就是说对

Java中23种设计模式--超快速入门及举例代码

在网上看了一些设计模式的文章后,感觉还是印象不太深刻,决定好好记录记录. 原文地址:http://blog.csdn.net/doymm2008/article/details/13288067 注:本文代码基本都有很多没有初始化等等问题,主要是为了减少代码量,达到一眼就能了解大概情况的目的. java的设计模式大体上分为三大类: 创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式. 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,

java中23种设计模式之13-组合模式(composite pattern)

import java.util.LinkedList;abstract class Company{ private String name; public void setName(String name) { this.name=name; } public String getName() { return name; } abstract void add(Company company); abstract void remove(Company company); abstract

java中23种设计模式之5-多例模式(multition pattern)

顾名思义,多例模式相对于单例模式,就是可以有多于一个的有限实例,如下列,只能有两个实例. import java.util.ArrayList;import java.util.Random;class Multition{ private final static int MAX_NUMBER=2; private static ArrayList<Multition> aMultitionArrayList=new ArrayList<Multition>(); private

java中23种设计模式之6-外观模式(facade pattern)

概念:为子系统中的一组接口提供一个统一接口.Facade模式定义了一个高层接口,这个接口使得这子系统更容易使用. 应用场景: 1)为一个复杂子系统提供一个简单接口. 2)提高子系统的独立性. 3)在层次化结构中,可以使用Facade模式定义系统中每一层的入口. 以大型娱乐商场提供的休闲一条龙服务为例,包括购物,餐饮,按摩.其中购物,按摩,餐饮作为子系统的组成,提供统一对外接口PackageService 类图如下: class Shopping{ String customer=null; pu