提供一个中介类,中介类和具体的子系统类进行交互,避免了子系统之间的直接交互比如MVC中的controller层,可以来调用不同的service来完成业务
package com.nike.erick.meditor;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) {
ChatRoom chatRoom = new ChatRoom();
Worker firstWorker = new Worker(chatRoom,"Erick");
firstWorker.message = "Hello, I am Erick";
firstWorker.sendMessage();
Worker secondWorker = new Worker(chatRoom,"Tommy");
secondWorker.message = "Hello, I am Tommy";
secondWorker.sendMessage();
}
}
class ChatRoom {
private Map serviceMap = new HashMap<>();
public void register(String workerName, Worker service) {
serviceMap.put(workerName, service);
}
public void showMessage(Worker worker, String message) {
System.out.println(new Date() + ":" + message);
}
}
class Worker {
public ChatRoom chatRoom;
public String workName;
public String message;
public Worker(ChatRoom chatRoom, String workName) {
this.chatRoom = chatRoom;
this.workName = workName;
}
public void sendMessage() {
chatRoom.register(workName, this);
chatRoom.showMessage(this, message);
}
}



