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");
}
}
19 of 23 Design Patterns in Java-Mediator mode (mediator pattern)