快速导航
一、中介者模式介绍
二、代码演示
三、jdk中使用中介者模式的地方
一、 中介者模式介绍
定义:一个 封装一组对象如何交互的对象
通过使对象明确地相互引用来促进松散耦合,并允许独立地改变他们的交互
适用场景:
系统中对象之间存在复杂的引用关系,产生的相互依赖关系结构混乱且难以理解
交互的公共行为,如果需要改变行为则可以增加新的中介者类
优点:
将一对多转化成了一对一、降低程序复杂度
类之间解耦
缺点:
中介者过多,导致系统复杂
相关设计模式:
中介者和观察者模式
二、代码演示
//用户类
public class User {
private String name;
public User(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void sendMessage(String message){
StudyGroup.showMessage(this,message);
}
}
/**
* @program: adpn-pattern->StudyGroup
* @description: 中介者
* @author: Jstar
* @create: 2019-12-01 19:45
**/
public class StudyGroup {
public static void showMessage(User user,String message){
System.out.println(new Date().toString()+" "+user.getName()+" "+message);
}
}
//测试类
public class Test {
public static void main(String[] args) {
User user = new User("蕾蕾");
user.sendMessage("发送了一条消息");
}
}
类的uml图:
执行结果:
三、jdk中使用中介者模式的地方
1、中介类 java.util.Timer
Timer是一个中介者
TimerTask 是一个被协调的类
使用sched()来完成具体的任务