设计模式之Mediator

设计模式之Mediator

Mediator翻译为仲裁者,常用于图形编程中,有多个同事类相互状态依赖的场景.使用仲裁者模式可以解耦各个同事类间的交互等依赖.

Mediator模式是把同事类间的交互逻辑统一放到Mediator类中进行统一管理,把各个同事类的状态管理放在Mediator中,操作同事类后状态切换时,同事类通过上报更新的状态给Mediator进行决策,更新对应的其他同事类.

由于Mediator中需要控制同事类的状态切换,可以通过在ConcreteMediator中聚合各个同事类ConcreteColleage;同时,ConcreteColleage内部状态变化时,需要上报状态给Mediator,所以ConcreteColleage中聚合有Mediator的对象.

uml图:
这里写图片描述

主要模块

Mediator接口

Mediator接口主要提供createColleage和colleageChanged接口.

ConcreteMediator

在createColleage中创建concreateColleage等多个同事类,并且在colleageChanged中实现业务逻辑,并控制各个子同事类的状态.

Colleage

Colleage中保存Mediator对象,提供controlColleage方法,供mediator.colleageChanged调用.

ConcreteColleage

同事类实现,这里只列出了controlColleage方法,内部应该还有同事类的内部状态等.在controlColleage中会修改同事类的内部状态,比如修改为只读,修改背景颜色等.

和State模式比较

State模式中,每个状态是一个ConcreteState类,状态变化是通过修改聚合的对象实现的,由于状态对象经常重新赋值,一般ConcreteState可以使用单例实现.Mediator模式中,Colleage同事类一般会有多个,各个之间会有相互以来,通过Mediator统一管理.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值