1️⃣概念
定义 : 定义了一个封装一组对象如何交互的对象;通过使对象明确的相互引用来促进松散耦合,并允许独立的改变地它们的交互;
类型 : 行为型;
2️⃣适用场景
系统中对象之间存在复杂的引用关系,产生的相互依赖关系结构混乱且难以理解;
交互的公共行为,如果需要改变行为则可以增加新的中介者类;
3️⃣优点
将一对多转换成了一对一,降低了程序的复杂度;
类之间的解耦;
4️⃣缺点
中介者过多,导致系统复杂;
5️⃣中介者模式Coding
1 声明StudyGroup类
public class StudyGroup {
public static void showMessage(User user, String message){
System.out.println(new Date().toString() + " [" + user.getName() + "] : " + message);
}
}
2 声明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) {
StudyGroup.showMessage(this, message);
}
}
3 编写测试类
public class Test {
public static void main(String[] args) {
User test = new User("test");
User test1= new User("test1");
test.sendMessage(" Hey! test1! Let's learn Design Pattern");
test1.sendMessage("OK! test");
}
}
4 UML类图
6️⃣中介者模式源码解析
java.util.Timer