import java.io.*; public class Welcome { Mediator mediator; String response = "n"; public Welcome (Mediator m) /* Constructor Welkom Pagina, neemt mediator object als arg, slaat dus mediator object in zichzelf op */ { mediator = m; } public void go() /* Go method om het te launchen */ { System.out.print( "Do you want to shop? [y/n]?"); BufferedReader reader = new BufferedReader (new InputStreamReader(System.in)); try { response = reader.readLine(); } catch (IOException e) { System.err.println("Error"); } if (response.equals("y")) { mediator.handle("welcome.shop"); /* Op deze manier behandeld de mediator de reqs om van pagina naar pagina te gaan */ } else { mediator.handle("welcome.exit"); } } } import java.io.*; public class Shop { Mediator mediator; String response = "n"; public Shop(Mediator m) { mediator = m; } public void go() /* Iedere pagina heeft natuurlijk een go method */ { System.out.print( "Are you ready to purchase? [y/n]?"); BufferedReader reader = new BufferedReader (new InputStreamReader(System.in)); try{ response = reader.readLine(); /* Sla result in response string */ } catch(IOException e) { System.err.prinln("Error"); } if (response.equals("y")) { mediator.handle("shop.purchase"); } else { mediator.handle("shop.exit"); } } } import java.io.*; public class Purchase { Mediator mediator; String response = "n"; public Purchase(Mediator m) { mediator = m; } public void go() { System.out.print( "Buy the item now? [y/n]?"); BufferedReader reader = new BufferedReader (new InputStreamReader(System.in)); try{ response = reader.readLine(); /* Sla result in response string */ } catch(IOException e) { System.err.prinln("Error"); } if (response.equals("y")) { System.out.println("Thanks for your purchase."); } else { mediator.handle("purchase.exit"); } } } import java.io.*; public class Exit { Mediator mediator; public Exit(Mediator m) { mediator = m; } public void go() { System.out.println( "Please come again sometime."); } } /* Nu moeten we nog een mediator hebben die bemiddeld tussen alle pages */ public class Mediator { Welcome welcome; Shop shop; Purchase purchase; Exit exit; public Mediator() /* Constructor maakt 4 pages aan */ { welcome = new Welcome(this); shop = new Shop(this); purchase = new Purchase(this); exit = new Exit(this); } public void handle(String state) /* New state passed als string aan handle method van mediator */ { if(state.equals("welcome.shop")) /* Krijgt method door, en showed nieuwe state waarin je bent */ { shop.go(); } else if(state.equals("shop.purchase")) { purchase.go(); } else if(state.equals("purchase.exit")) { exit.go(); } else if(state.equals("welcome.exit")) { exit.go(); } else if(state.equals("shop.exit")) { exit.go(); } else if(state.equals("purchase.exit")) { exit.go(); } } public Welcome getWelcome() { return welcome; } } public class TestMediator { public static void main(String args[]) { TestMediator t = new TestMediator(); } public TestMediator() /* Constructor maakt nieuw mediator object aan */ { Mediator mediator = new Mediator(); mediator.getWelcome().go(); } }