一、定义
中介者模式又称调解着模式或调停着模式。用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散。属于行为型模式。
二、生活场景
在我们生活当中如果你去租房子,没有中介的时候可能需要自己去找房源,房东和租客是一个网状结构。 当我们有了中介以后,我们找房子可以直接找中介。
三、例子
在rpc(远程过程调用)出现之前,类与类之间是相互依赖的。导致服务之间不好管理,存在服务治理问题,后来引入注册中心(中介),服务与服务之间得以管理。 伪代码
public class Registy {
public boolean regist(String serviceName,IService service){
return true;
}
public IService get(String serviceName){
return null;
}
}
public interface IService {
}
public class AService implements IService {
Registy registy;
AService(){
registy.regist("aService",this);
}
public void a(){
}
}
public class BService implements IService{
Registy registy;
BService(){
registy.regist("bService",this);
}
}
public class CService implements IService {
Registy registy;
CService(){
registy.regist("cService",this);
}
}
四、优点和缺点
优点: 1.减少类间依赖,将多对多依赖转化成了一对多,降低了类间耦合 2.类间各司其职,符合迪米特法则
缺点: 当多个同事类变多了以后,中介者就会越臃肿,变得复杂且难以维护
|