中介者模式
来源:互联网 发布:爱知产业大学 推荐入学 编辑:程序博客网 时间:2024/05/14 10:40
在面向对象的设计中是鼓励把行为分散到不同的对象中的,虽然把行为分散到不同的对象之间能增加复用性,但是这样的话可能会导致对象与对象相互关联的越来越多,这样的话就会使对象很难在不依赖对象的情况下独立工作,而且由于行为分布于多个对象,如果我们要去修改某个行为的话可能就很难的去修改,这样的话我们去创建的类就会越来越多,通过这样的方式去支持应用程序的新行为。
中介者模式的话其实就是让对象的交互在一个中介者中进行处理,其他的对象不需要去进行彼此的交互,这样可以松散耦合,减少了它们之间的依存的关系。
在现实生活中其实中介者模式也是在很多方面都存在的,就比如说我们经常使用的电脑如果缺乏主板,那么CPU,显卡,声卡这些都无法与外界直接进行交互,其实这就是一个中介者。
在中介者模式中有几个概念我们是需要知道的,如下所示
1、抽象的中介者接口Mediator,这里面一般定义的是用于各个colleague交互的一般的行为
2、具体中介者实现对象ConcreteMeditor主要就是去维护各个同事对象,负责协调各个同事对象之间的交互关系,就好比电影中的一个导演,导演应该知道所有的参与影片的角色以及场景的变换,如果电影在这拍摄期间的需求有任何的改变,导演应该是第一个知道的,然后去进行资源和人力的调整。
3、抽象的同事类Colleague主要就是用于约束同事对象的类型,并且可以去实现一些同事类当中要进行交互的一些公共的功能。
4、具体的同事类ConcreteColleague 首先肯定要先实现自己的业务,如果要和其他的同事进行交互的话,就去通过引用的中介者来进行交互,一般来说每一个具体的同事类的对象都会去引用中介者对象
中介者模式的主要应用场景
对象之间的交互很复杂时,也就是说如果导致一组对象之间相互依赖这样耦合性会很强。
对象引用了很多其他的对象导致对象很难进行复用
想要做一个分布在多个类中的逻辑或者是行为,但是不想生成太多的类的。
当然如果我们使用了中介者模式的话,是以中介者内部的复杂的业务逻辑的判断去取代了交互的复杂性,因为中介者去封装了和合并了colleague的各种的协作的逻辑,所以中介者可能会变得很复杂很难进行维护。这样的话其实我们可以去使用策略模式来进行分解。
- 深入浅出中介者模式
- 中介者(Mediator)模式
- Mediator中介者模式
- 中介者模式
- 中介者模式
- Mediator 中介者模式
- 中介者模式Mediator
- 侃中介者模式
- 中介者模式
- 中介者模式 MediatorPattern
- 中介者模式Mediator
- 中介者模式
- 中介者模式
- 中介者模式
- 中介者模式
- 中介者模式
- 中介者模式(python)
- Mediator模式(中介者)
- 实时搜索引擎Elasticsearch(4)——Aggregations (聚合)API的使用
- Pycharm 2017 激活码
- Linux实验:Linux0.00注入到Linux0.11,Bochs中编译运行
- 底部导航栏:利用viewpager实现Android底部标题栏
- java通过url调用远程接口返回json数据,有用户名和密码验证
- 中介者模式
- Intellij IDEA 常用快捷键整理
- Linux设备驱动模型框图
- VMware Workstation 14运行虚拟机黑屏,但是查看控制台确有界面显示
- C#中IEnumerable、ICollection、IList、List之间的区别
- 实时搜索引擎Elasticsearch(5)——Java API的使用
- 湖北掌大协议拨号Python脚本
- 中国首个行业AI决策系统「DeepMatrix」面世,距离真正实现人机协同发展还有多远
- 错误:java.lang.IllegalArgumentException: No view found for id 0x7f1001c1