当前位置: 移动技术网 > IT编程>开发语言>Java > 轻松掌握java中介者模式

轻松掌握java中介者模式

2019年07月22日  | 移动技术网IT编程  | 我要评论

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

特点:

     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,string 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,string 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<string, department> map = new hashmap<string, department>();
 
 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);
 }
}

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网