Java Tutorial/Design Pattern/Mediator Pattern

Материал из Java эксперт
Перейти к: навигация, поиск

Coordinating Your Objects with the Mediator Patterns

   <source lang="java">

public class Mediator {

 Welcome welcome;
 Browse browse;
 Purchase purchase;
 Exit exit;
 public Mediator() {
   welcome = new Welcome(this);
   browse = new Browse(this);
   purchase = new Purchase(this);
   exit = new Exit(this);
 }
 public void handle(String state) {
   if (state.equals("welcome.shop")) {
     browse.execute();
   } else if (state.equals("shop.purchase")) {
     purchase.execute();
   } else if (state.equals("purchase.exit")) {
     exit.execute();
   } else if (state.equals("welcome.exit")) {
     exit.execute();
   } else if (state.equals("shop.exit")) {
     exit.execute();
   } else if (state.equals("purchase.exit")) {
     exit.execute();
   }
 }
 public Welcome getWelcome() {
   return welcome;
 }
 public static void main(String args[]) {
   Mediator mediator = new Mediator();
   mediator.getWelcome().execute();
 }

} class Exit {

 Mediator mediator;
 public Exit(Mediator m) {
   mediator = m;
 }
 public void execute() {
   System.out.println("exit");
 }

} class Browse {

 Mediator mediator;
 public Browse(Mediator m) {
   mediator = m;
 }
 public void execute() {
   mediator.handle("shop.purchase");
   mediator.handle("shop.exit");
 }

} class Welcome {

 Mediator mediator;
 public Welcome(Mediator m) {
   mediator = m;
 }
 public void execute() {
   mediator.handle("welcome.shop");
   mediator.handle("welcome.exit");
 }

} class Purchase {

 Mediator mediator;
 public Purchase(Mediator m) {
   mediator = m;
 }
 public void execute() {
   System.out.println("Thanks for your purchase.");
   mediator.handle("purchase.exit");
 }

}</source>