轻松掌握java中介者模式

网友投稿 189 2023-07-04


轻松掌握java中介者模式

定义:用来降低多个对象和类之间的通信复杂性。中介者模式属于行为型模式。

特点:

1、降低了类的复杂度,将一对多转化成了一对一。

    2、各个类之间的解耦。

3、符合迪米特原则。

企业级开发和常用框架中的应用:mvc模式中的c

具体实例:

public class Demo {

public static void main(String[] args) {

Mediator m = new Mediator();

Department d1 = new Department(m, "开发部");

Department d2 = new Department(m, "财务部");

Department d3 = new Department(m, "策划部");

m.add(d1, "dep");

m.add(d2, "fin");

m.add(d3, "c");

d2.apply("手里有一个项目需要开发", "dep");

d1.apply("开发项目需要资金", "fin");

d1.apply("项目开发完了,需要策划发布", "c");

d3.apply("发布会需要资金", "fin");

}

}

class Department{

private String name;

private Mediator mediator;

public Department(Mediator mediator,StpRekcYring name) {

this.name = name;

this.mediator = mediator;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public void apply(String thing,StringpRekcY coordinate){

System.out.println("我们是"+this.getName()+","+thing+",需要帮助");

mediator.dispatch(this, thing, coordinate);

}

public void handle(String name,String thing){

System.out.println("我们是"+this.getName()+","+name+"需要我们的帮助,我们马上处理他们的事情");

System.out.println("*******************************************");

}

}

/**

*中介者对象,持有所有同事对象,负责调度各部门协调工作

*/

class Mediator{

private String name;

private Map map = new HashMap();

public void add(Department d,String name){

this.map.put(name, d);

}

public void dispatch(Department dpt,String thing,String coordinate){

Department d = map.get(coordinate);

d.handle(dpt.getName(),thing);

}

}

中介者模式和代理模式的区别:初一听这两个模式的模式感觉这两个模式好像是一个模式,但是这两个模式却完全不同,代理模式主要用于隐藏实际对象,不让别人知道具体的操作细节,而中介者模式则主要用户多对象多对多的复杂交互,为了简化这些交互,才有了终结者模式。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:关于List.ToArray()方法的效率测试
下一篇:微信小程序 window_x64环境搭建
相关文章

 发表评论

暂时没有评论,来抢沙发吧~