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();
}
}