Mediator Pattern
- Interface based
- Concrete class
- Minimize inheritance
- Knows about his colleges
- Works with the Command Pattern
Main
Mediator
public class Mediator {
private List<LightReceiver> list = new ArrayList<LightReceiver>();public void registerLight(LightReceiver lr){list.add(lr);}public void turnOnLights(){for (LightReceiver lightReceiver : list) {if (!lightReceiver.isOn()) {lightReceiver.toogle();}}}}
Command
public interface Command {
public void execute();}
Command Implemented
public class TurnOnAllLightsCommand implements Command {Mediator m;public TurnOnAllLightsCommand(Mediator m){this.m = m;}@Overridepublic void execute() {m.turnOnLights();}}
Receiver
public class LightReceiver {
private boolean isOn = false;public boolean isOn(){return isOn;}public void on(){System.out.println("Light is on");}public void off(){System.out.println("Light is off");}public void toogle(){if(isOn)off();elseon();isOn = !isOn;}}
Comentarios
Publicar un comentario