1. 类图
2. 角色
- User:用户
- ChatRoom:中介者,负责向所有User显示消息
3. 代码
- 中介类
-
public class ChatRoom { public static void showMessage(User user, String message){ System.out.println(new Date().toString() + " [" + user.getName() +"] : " + message); } }
-
- User
-
public class User { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public User(String name){ this.name = name; } public void sendMessage(String message){ ChatRoom.showMessage(this,message); } }
-
- 客户端调用
-
public class MediatorPatternDemo { public static void main(String[] args) { User robert = new User("Robert"); User john = new User("John"); robert.sendMessage("Hi! John!"); //Thu Jan 31 16:05:46 IST 2013 [Robert] : Hi! John! john.sendMessage("Hello! Robert!"); //Thu Jan 31 16:05:46 IST 2013 [John] : Hello! Robert! } }
-
4. 总结
优点:
- 降低了类的复杂度,将一对多转化成了一对一
缺点:
- 中介者会庞大,变得复杂难以维护