调停者模式(Mediator Pattern)

    调停者模式是对象的行为模式。调停者模式包装了一系列对象相互作用的方式,使得这些对象不必互相明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对象之间的相互作用。从而保证这些相互作用可以彼此独立地改变。
一、什么是调停者模式。

调停者模式(Mediator <wbr>Pattern)

二、示例。
1、结构
调停者模式(Mediator <wbr>Pattern)
 
调停者模式(Mediator <wbr>Pattern)
 
 
 2、java代码
 
Colleague抽象类:
package mediator.colleague;
import mediator.mediator.Mediator;
public abstract class Colleague {
 private Mediator mediator;
 public Colleague(Mediator m){
  this.mediator = m;
 }
 public Mediator getMediator(){
  return mediator;
 }
 public abstract void action();
 public void change(){
  mediator.colleagueChanged(this);
 }
}
 
Colleague1类:
package mediator.colleague;
import mediator.mediator.Mediator;
public class Colleague1 extends Colleague{
 public Colleague1(Mediator m){
  super(m);
 }
 public void action() {
  System.out.println("This is an action from Colleague1......");
 }
}

 
Colleague2类:
package mediator.colleague;
import mediator.mediator.Mediator;
public class Colleague2 extends Colleague{
 public Colleague2(Mediator m){
  super(m);
 }
 public void action() {
  System.out.println("This is an action from Colleague2......");
 }
}
 
Mediator抽象类:
package mediator.mediator;
import mediator.colleague.Colleague;
import mediator.colleague.Colleague1;
import mediator.colleague.Colleague2;
public abstract class Mediator {
 public abstract void colleagueChanged(Colleague colleague);
 public static void main(String args[]){
  ConcreteMediator mediator = new ConcreteMediator();
  mediator.createConcreteMediator();
  Colleague c1 = new Colleague1(mediator);
  c1.change();
  System.out.println();
  Colleague c2 = new Colleague2(mediator);
  c2.change();
 }
}
 
ConcreteMediator类:
package mediator.mediator;
import mediator.colleague.Colleague;
import mediator.colleague.Colleague1;
import mediator.colleague.Colleague2;
public class ConcreteMediator extends Mediator{
 private Colleague1 colleague1;
 private Colleague2 colleague2;
 public void colleagueChanged(Colleague colleague) {
  colleague.action();
  colleague1.action();
  colleague2.action();
 }
 public void createConcreteMediator(){
  colleague1 = new Colleague1(this);
  colleague2 = new Colleague2(this);
 }
 public Colleague1 getColleague1() {
  return colleague1;
 }
 public Colleague2 getColleague2() {
  return colleague2;
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值