23种设计模式:中介模式
中介模式
1.介绍
概念
中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。
主要作用
用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
解决的问题
对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。
使用场景
1、系统中对象之间存在比较复杂的引用关系,导致它们之间的依赖关系结构混乱而且难以复用该对象。 2、想通过一个中间类来封装多个类中的行为,而又不想生成太多的子类。
3.MVC 框架,其中C(控制器)就是 M(模型)和 V(视图)的中介者。
(引用自菜鸟教程)
2.实现
背景
界面需要与数据库之间进行交互,User类就充当中介的角色,数据都被封装到了User类中。
实现步骤
1.创建User类
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
2.创建Dao类
public class Dao {
public void setUserInformation(User user) {
user.setUsername("zhangsan");
user.setPassword("123456");
}
}
3.创建View类
public class View {
public void showUserInformation(User user) {
System.out.println("username: " + user.getUsername());
System.out.println("paaaword: " + user.getPassword());
}
}
4.创建Service类
public class Service {
public static void main(String[] args) {
User user = new User();
Dao dao = new Dao();
View view = new View();
dao.setUserInformation(user);
view.showUserInformation(user);
}
}
5.运行结果
username: zhangsan
paaaword: 123456