初始设计模式10——中介者模式

中介者模式Mediator Pattern

用一个中介对象封装一系列对象交互,使各对象不需要显示地相互作用,从而使耦合松散,可以独立改变他们之间得交互
//通用抽象中介类
public abstract class Mediator{
	protected Colleague1 c1;
	protected Colleague2 c2;
	//实现setter/getter方法把同事类注入,依赖注入
	public abstract void doSomething(Colleague colleague);
}
//通用中介类
public class ConcreteMediator{
	public void doSomething(){
		if(colleague instanceof Colleague1){
			super.c2.method2();
		}
		else{
			super.c1.method1();
		}
	}
}
//抽象同事类
public abstract Colleague(){
	protected Mediator mediator;//中介
	public Colleague(Mediator mediator){
		this.mediator=mediator;
	}
}
//同事类1
public class Colleague1(){
	public Colleague1(Mediator mediator){super(mediator);}
	public method1(){}//自己的业务逻辑
	public depMethod1(){
		//内部逻辑
		super.mediator.doSomething(this);//交互业务    
	}//中介处理
}
public class Colleague2(){
	public Colleague2(Mediator mediator){super(mediator);}
	public method2(){}//自己的业务逻辑
	public depMethod1(){
		//内部逻辑
		super.mediator.doSomething(this);//交互业务    
	}//中介处理
}
中介者模式减少了实体类之间的耦合,使得可以独立修改实体类之间的逻辑关系,减少类间依赖,降低类间耦合。不过中介者控制了集中化,将实体类之间交互的复杂性变为了中介者的复杂性。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值