中介者模式

基本介绍
1) 中介者模式(Mediator Pattern),用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显
式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互
2) 中介者模式属于行为型模式,使代码易于维护

3) 比如 MVC 模式,C(Controller 控制器)是 M(Model 模型)和 V(View 视图)的中介者,在前后端交互时起到了中间人的作用

原理类图

​
Mediator(抽象中介者):中介者接口,该接口用于与各同事对象之间进行通信。

ConcreteMediator(具体中介者):具体中介者实现对象,它维持对各个同事对象的引用,协调各个同事对象来
实现协作行为。

Colleague(抽象同事类):主要负责约束同事对象的类型,它定义各个同事类公有的方法,并声明了一些抽象方
法来供子类实现,同时它维持了一个对抽象中介者类的引用,其子类可以通过该引用来与中介者通信。

ConcreteColleague(具体同事类):在需要与其他同事通信的时候,就与持有的中介者通信,中介者负责与其
他的同事进行交互;在具体同事类中实现了在抽象同事类中声明的抽象方法。

​
中介者模式的注意事项和细节
1) 多个类相互耦合,会形成网状结构, 使用中介者模式将网状结构分离为星型结构,进行解耦
2) 减少类间依赖,降低了耦合,符合迪米特原则
3) 中介者承担了较多的责任,一旦中介者出现了问题,整个系统就会受到影响
4) 如果设计不当,中介者对象本身变得过于复杂,这点在实际使用时,要特别注意

demo:

public abstract class Mediator {
	//将给中介者对象,加入到集合中
	public abstract void Register(String colleagueName, Colleague colleague);
	
	//接收消息, 具体的同事对象发出
	public abstract void GetMessage(int stateChange, String colleagueName);
	
	public abstract void SendMessage();
}
public abstract class Colleague {
	private Mediator mediator;
	public String name;

	public Colleague(Mediator mediator, String name) {

		this.mediator = mediator;
		this.name = name;

	}

	public Mediator GetMediator() {
		return this.mediator;
	}

	public abstract void SendMessage(int stateChange);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值