Java设计模式之行为型模式(中介者模式)
来源:互联网 发布:安卓7.0 java模拟器 编辑:程序博客网 时间:2024/06/07 16:26
中介者模式(Mediator)
1、背景
类与类之间会产生直接的交互,这在实际的编码中是常见的,例如,A类调用B类的方法。我们常说的“对扩展开放,对修改关闭”原则就是要防止某处修改导致处处修改的情景,因为这样极不利于后期维护。当A类直接调用B类的方法时,A类对B类产生了直接的依赖关系:A类直接依赖B类的方法。当B类的方法发生修改时(例如B类方法的方法名发生改变,B的类名发生改变),A类中的调用B类的方法的代码就极有可能报错,即需要修改。当然,这只是A类依赖B类的方法,若有更多的C、D、E、F依赖B的方法呢?确切地,C、D、E、F也有可能要修改对应的代码,这样就违背了“开闭原则”。一个类修改,其他类可能全部都需要修改,为了解决这个问题:中介者设计模式诞生了。
2、概述
①定义
中介者模式将各个类笼络在一个中介类的内部,由中介类负责为各个类建立相关的逻辑关系,实现相关的方法功能,防止各个类直接发生依赖。各个类只与中介类发生直接依赖。
附图:使用中介者模式之前
附图:使用中介者模式之后
②优势
- 有效降低类与类之间的耦合度
- 通过中介类将各个类聚集在一起,间接实现逻辑,体现了高内聚的特点
- 后期代码维护性强,健壮性强
③劣势
- 随着中介类管理的类愈多,内部类与类之间的逻辑愈复杂,后期中介类代码臃肿,不利于维护。
- 对于耦合度不高的类来说是多此一举
3、实例分析
下面为大家介绍一系列有关中介者模式的代码。
①不使用中介者模式
逻辑:A、B类为分为一类,H类分为一类。A、B类直接依赖H类的show方法。
逻辑:当H类的方法名发生变化时(如图,由show变为了show_),A、B类中都相继报错,需要修改对应的方法名。
②使用了中介者模式
逻辑:Mediator为中介类,中介类注入H类,并在中介类中定义meaditorShow方法,方法中添加H类的show方法。这样,Mediator对H类建立了直接依赖。A、B类中注入Mediator类,并在showH方法中添加Mediator的mediatorShow方法,至此,A、B与Mediator类建立了直接依赖,与H类只是建立了间接依赖。当H类中方法show名称发生改变时,报错的位置只是存在于Mediator类,而不需要修改A、B类了。
- java设计模式(行为型)之中介者模式
- Java设计模式(行为型)之-中介者模式
- 行为型:设计模式之中介者模式(十四)
- Java设计模式(22)行为型:中介者模式
- java设计模式--中介者模式(对象行为型)
- Java设计模式之行为型模式(中介者模式)
- 设计模式之------行为型模式(一)-----中介者模式
- 设计模式--行为型--中介者模式
- 行为型设计模式-中介者模式
- 设计模式笔记--行为型模式之五--中介者
- 设计模式(行为型)之中介者模式(Mediator Pattern)
- 设计模式-行为型之中介者模式
- Java设计模式_(行为型)_中介者模式
- 行为型模式之中介者模式
- 设计模式笔记(17)---中介者模式(行为型)
- 设计模式--中介者模式Mediator(行为型)
- 设计模式-行为型-中介者模式(Mediator)
- 设计模式-行为-中介者
- Hello world!
- 1022. D进制的A+B (20) PAT乙级
- windows 10下安装一些不兼容windows 10 UI的软件
- Maven Assembly插件相关介绍
- 496. Next Greater Element I
- Java设计模式之行为型模式(中介者模式)
- ionic ios打包配置以及bug修复整理
- 深度学习与计算机视觉
- DiskLruCache源码分析
- java Finally代码块真的任何情况下都是执行的?
- 问题总结
- 8 种 NoSQL 数据库系统对比
- 1012. The Best Rank (25)
- easyui学习之选项卡面板