当前位置: 移动技术网 > IT编程>软件设计>设计模式 > 设计模式------中介者模式

设计模式------中介者模式

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

中介者模式:
定义一个对象来封装一系列对象的交互.

中介者的四个角色:
1.mediator(抽象中介者)
2.concretemediator(具体中介者)
3.colleague(抽象同事类)
4.concretecolleague(具体同事类)

举例说明:
例如公司开发一套crm系统,该系统负责编辑客户的信息,其中有一个ui界面负责显示和修改客户信息.
该界面包括列表框,组合框,文本框,在这三个框内编辑用户信息,其他框内的信息都要相应的改变.

具体实现:

 

/**
*
* @classname: mediator
* @description: 抽象中介者类
* @author haibiscuit
* @date 2019年10月22日 下午5:10:26
*
*/

 

public abstract class mediator {
arraylist<mycomponent> arraylist;
protected void addmycomponent(mycomponent c) {
if (null == arraylist) {
arraylist = new arraylist<mycomponent>();
}
arraylist.add(c);
};

public abstract void componentchanged(mycomponent c);

 

}

 


/**
*
* @classname: concretemediator
* @description: 具体中介者类
* @author haibiscuit
* @date 2019年10月22日 下午5:11:41
*
*/
public class concretemediator extends mediator{
// 封装同事对象的交互
@override
public void componentchanged(mycomponent c) {
for (mycomponent mycomponent : arraylist) {
mycomponent.update();
}
}
}

 

/**
*
* @classname: mycomponent
* @description: 抽象组件类,充当抽象同事类
* @author haibiscuit
* @date 2019年10月22日 下午5:07:02
*
*/
public abstract class mycomponent {
protected mediator mediator;


public void setmediator(mediator mediator) {
this.mediator = mediator;

}

//转发调用
public void changed() {
mediator.componentchanged(this);
}

public abstract void update();
}

 

/**
*
* @classname: mycombobox
* @description: 组合框类,充当同事类
* @author haibiscuit
* @date 2019年10月22日 下午5:21:05
*
*/
public class mycombobox extends mycomponent{

@override
public void update() {
system.out.println("组合框修改信息");
}

}

 

/**
*
* @classname: mylist
* @description: 列表框类,充当具体同事
* @author haibiscuit
* @date 2019年10月22日 下午5:19:11
*
*/
public class mylist extends mycomponent{

@override
public void update() {
system.out.println("列表框修改信息");
}
}

 

/**
*
* @classname: mytextbox
* @description: 文本框类,充当同事类
* @author haibiscuit
* @date 2019年10月22日 下午5:19:45
*
*/
public class mytextbox extends mycomponent{

@override
public void update() {
system.out.println("文本框修改信息");
}
}

总结:

    中介者模式很像观察者模式,具体的使用场景和比较可以参考观察者模式.

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网