1、中介者模式
用来降低类类之间的耦合,因为如果类类之间有依赖关系的话,不利于功能的扩展和维护,因为只要修改一个对象,其他的关联的对象都得进行修改。
如果使用中介者模式,只需要关心和Medialtor类的关系,具体的类类之间的关系及调度交给Mediator就行。
如图:User类统一接口,User1和User2分别是不同的对象,(假设两者之间存在联系),如果不采用中介者模式,则需要两者持有相互的引用,这样两者
耦合度很高,为了解耦,引入统一接口Mediator,MyMediator为其实现类,里面持有User1和User2的实例,用来实现对User1和User2的控制。
这样User1和User2两个对象相互独立,他们只需要保持好和Mediator之间的关系就行,剩下的全由MyMediator类来维护!
实例一:
public interface User {
public void work();
}
public class User1 implements User {
@Override
public void work() {
System.out.println(" ~~~ user1 worked ~~~");
}
}
public class User2 implements User {
@Override
public void work() {
System.out.println("~~~~~ user2 worked ~~~");
}
}
// 中介者
public interface Mediator {
public void addUser(User user);
public void workAll();
}
public class MyMediator implements Mediator {
private List<User> list = new ArrayList<User>();
@Override
public void addUser(final User user) {
this.list.add(user);
}
@Override
public void workAll() {
for (int i = 0; i < this.list.size(); i++) {
this.list.get(i).work();
}
}
}
模拟调用:
public static void main(final String[] args) {
final Mediator me = new MyMediator();
me.addUser(new User1());
me.addUser(new User2());
me.workAll();
}