This lecture covers Mediator design pattern.
Watch the interaction videos and examples.
package Mediator;
public interface Mediator {
public void operationD();
public void operationA();
}
package Mediator;
public class BaseComponent {
protected Mediator mediator;
public void setMediator(Mediator objMediator){
this.mediator = objMediator;
}
}
package Mediator;
public class ConcreteColleaque1 extends BaseComponent{
public void doOperationA(){
System.out.println("Colleaque 1 performed operation A.");
}
public void doOperationB(){
System.out.println("Colleaque 1 performed operation B.");
}
}
package Mediator;
public class ConcreteColleaque2 extends BaseComponent{
public void doOperationC(){
System.out.println("Colleaque 2 performed operation C.");
}
public void doOperationD(){
System.out.println("Colleaque 2 performed operation D.");
}
}
package Mediator;
public class ConcreteMediator implements Mediator{
private ConcreteColleaque1 objColleaque1;
private ConcreteColleaque2 objColleaque2;
// Mediator aggregates its concrete colleaques
public ConcreteMediator(ConcreteColleaque1 component1, ConcreteColleaque2 component2) {
this.objColleaque1 = component1;
component1.setMediator(this);
this.objColleaque2 = component2;
component2.setMediator(this);
}
@Override
public void operationA() {
System.out.println("Mediator knows that operationA can be done by Colleaque1.");
objColleaque1.doOperationA();
}
@Override
public void operationD() {
System.out.println("Mediator knows operationD can be done by Colleaque2.");
objColleaque2.doOperationD();
}
}
package Mediator;
public class Client {
public static void main(String[] args) {
// 1. Initiate concrete colleques
ConcreteColleaque1 objColleaque1 = new ConcreteColleaque1();
ConcreteColleaque2 objColleaque2 = new ConcreteColleaque2();
// 2. Initiate mediator with controlling components
Mediator objM = new ConcreteMediator(objColleaque1, objColleaque2);
// 3. Ask Mediator to perform operations
objM.operationA();
objM.operationD();
}
}
package Mediator;
public class ConcreteColleaque3 extends BaseComponent {
public ConcreteColleaque3(Mediator objMediator){
this.mediator = objMediator;
}
public void doOperationAll(){
System.out.println("Colleaque 3 asking mediator to perform operationA and operationD.");
mediator.operationA();
mediator.operationD();
System.out.println("Colleaque 3 performed all operations.");
}
}
// 4. Mediator serving colleques internal operations
ConcreteColleaque3 objColleaque3 = new ConcreteColleaque3(objM);
objColleaque3.doOperationAll();
To earn PASS status, system is about to evaluate you using multiple choice questions (MCQs) and True/False type questions.
Topics |
|