当前位置: 首页 > news >正文

怎么做网站发布产品今天国内新闻

怎么做网站发布产品,今天国内新闻,牡丹江网站推广,视频直播网站建设目录 什么是中介者模式 中介者模式的实现 中介者模式角色 中介者模式类图 中介者模式代码实现 中介者模式的特点 优点 缺点 使用场景 注意事项 实际应用 什么是中介者模式 中介者模式(Mediator Pattern)属于行为型模式,是用来降低…

目录

什么是中介者模式

中介者模式的实现

中介者模式角色

中介者模式类图

中介者模式代码实现

中介者模式的特点

优点

缺点

使用场景

注意事项

实际应用


什么是中介者模式

        中介者模式(Mediator Pattern)属于行为型模式,是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。用一个中介者对象来封装一系列的对象交互,中介者使各对象不需要显示地相互引用,且可以独立地改变它们之间的交互。

        中介者模式又叫调停者模式,是一种对象行为型模式。

中介者模式的实现

中介者模式角色

  1. 抽象中介者角色(Mediator):抽象中介者角色定义统一的接口,以及一个或者多个事件方法,用于各同事角色之间的通信。
  2. 具体中介者角色(ConcreteMediator):实现了抽象中介者所声明的事件方法,协调各同事类之间的行为,持有所有同事类对象的引用。
  3. 抽象同事角色(Colleague):定义了抽象同事类,持有抽象中介者对象的引用。
  4. 具体同事角色(ConcreteColleague):继承抽象同事类,实现自己业务,通过中介者跟其他同事类进行通信,都需要认识中介者。

中介者模式类图

中介者模式代码实现

抽象中介者角色

package com.common.demo.pattern.mediator;/*** @author Evan Walker 昂焱数据: https://www.ayshuju.com* @version 1.0* @desc 具体中介角色 具体中介者* @date 2023/08/04 09:27:57*/
public class ConcreteMediator extends Mediator{@Overridepublic void operation(Colleague colleague){if(colleague instanceof ConcreteColleagueA) {colleagues.get(0).update();}else if(colleague instanceof ConcreteColleagueB) {colleagues.get(1).update();}}
}

具体中介者角色

    package com.common.demo.pattern.mediator;/*** @author Evan Walker 昂焱数据: https://www.ayshuju.com* @version 1.0* @desc 具体中介角色 具体中介者* @date 2023/08/04 09:27:57*/public class ConcreteMediator extends Mediator{@Overridepublic void operation(Colleague colleague){if(colleague instanceof ConcreteColleagueA) {colleagues.get(0).update();}else if(colleague instanceof ConcreteColleagueB) {colleagues.get(1).update();}}}

抽象同事角色

package com.common.demo.pattern.mediator;/*** @author Evan Walker 昂焱数据: https://www.ayshuju.com* @version 1.0* @desc 抽象同事角色 抽象同事类* @date 2023/08/04 09:21:50*/
public abstract class Colleague {/*** 抽象中介者引用*/protected Mediator mediator;public Colleague(Mediator mediator) {this.mediator = mediator;}/*** 数据更新方法*/public abstract void update();/*** 数据更改方法*/public abstract void changed();
}

具体同事角色

package com.common.demo.pattern.mediator;/*** @author Evan Walker 昂焱数据: https://www.ayshuju.com* @version 1.0* @desc 具体同事角色 具体同事小A* @date 2023/08/04 09:24:46*/
public class ConcreteColleagueA extends Colleague{public ConcreteColleagueA(Mediator mediator){super(mediator);}@Overridepublic void update() {System.out.println("更新同事小A");}@Overridepublic void changed() {System.out.println("同事小A数据更改");mediator.operation(this);}
}
package com.common.demo.pattern.mediator;/*** @author Evan Walker 昂焱数据: https://www.ayshuju.com* @version 1.0* @desc 具体同事角色 具体同事小B* @date 2023/08/04 09:24:46*/
public class ConcreteColleagueB extends Colleague{public ConcreteColleagueB(Mediator mediator){super(mediator);}@Overridepublic void update() {System.out.println("更新同事小B");}@Overridepublic void changed() {System.out.println("同事小B数据更改");mediator.operation(this);}
}

测试代码

package com.common.demo.pattern.mediator;/*** @author Evan Walker 昂焱数据: https://www.ayshuju.com* @version 1.0* @desc 具体中介角色 具体中介者* @date 2023/08/04 09:27:57*/
public class ConcreteMediator extends Mediator{@Overridepublic void operation(Colleague colleague){if(colleague instanceof ConcreteColleagueA) {colleagues.get(0).update();}else if(colleague instanceof ConcreteColleagueB) {colleagues.get(1).update();}}
}

测试截图

 

中介者模式的特点

优点

  1. 解耦对象之间的交互:中介者模式将对象间的交互逻辑封装到中介者对象中,使得各个对象之间的关系变得松耦合,减少了对象之间的直接依赖。
  2. 集中控制交互逻辑:中介者模式通过集中控制对象间的交互逻辑,使得代码更加清晰可维护,易于扩展和修改。
  3. 简化对象间的通信:中介者模式将对象间的通信封装到中介者对象中,对象只需要关注自身的业务逻辑,无需了解其它对象的具体实现细节。

缺点

  1. 中介者对象过于复杂:随着系统的复杂性增加,中介者对象可能会变得庞大复杂,维护和理解起来相对困难。
  2. 增加了系统的单一点故障:中介者对象负责协调对象之间的交互,一旦中介者对象出现问题,可能会影响系统的稳定性。

使用场景

  1. 多个对象之间存在复杂的交互关系:当对象之间存在复杂的交互逻辑,并且彼此之间的依赖关系较高时,可以考虑使用中介者模式。
  2. 需要集中控制对象间交互逻辑的情况:当需要集中管理和控制多个对象的交互逻辑时,可以使用中介者模式简化系统的设计。

注意事项

  1. 中介者模式需要注意中介者对象的设计和组织方式,以及与其他对象的交互关系,避免中介者对象过于庞大和复杂。
  2. 不要滥用中介者模式,只有在对象间的交互逻辑较为复杂、耦合度较高时才考虑使用中介者模式。

实际应用

  1. 聊天室:聊天室中的用户可以通过中介者对象发送消息和接收消息,中介者负责将消息传递给其他用户。
  2. MVC框架:在MVC框架中,控制器作为中介者对象,接收用户的请求并协调模型和视图之间的交互。
  3. 航空管制系统:航空管制系统中的空中交通管制中心可以看作是中介者,负责协调各个飞机的航行和地面设施之间的交互。


更多消息资讯,请访问昂焱数据(https://www.ayshuju.com)


文章转载自:
http://spleenwort.nrwr.cn
http://concho.nrwr.cn
http://pushing.nrwr.cn
http://fth.nrwr.cn
http://walkaway.nrwr.cn
http://unpardoned.nrwr.cn
http://undersexed.nrwr.cn
http://callithumpian.nrwr.cn
http://wabenzi.nrwr.cn
http://endosmotic.nrwr.cn
http://thimbleful.nrwr.cn
http://flexible.nrwr.cn
http://abjective.nrwr.cn
http://hospitality.nrwr.cn
http://kittenish.nrwr.cn
http://malarious.nrwr.cn
http://drably.nrwr.cn
http://nonskid.nrwr.cn
http://shade.nrwr.cn
http://nanna.nrwr.cn
http://horsecar.nrwr.cn
http://sphygmomanometer.nrwr.cn
http://coplanarity.nrwr.cn
http://criminy.nrwr.cn
http://costumey.nrwr.cn
http://landor.nrwr.cn
http://amphipath.nrwr.cn
http://fls.nrwr.cn
http://iaaf.nrwr.cn
http://paraclete.nrwr.cn
http://haulm.nrwr.cn
http://octaploid.nrwr.cn
http://blusterous.nrwr.cn
http://oblige.nrwr.cn
http://incorrect.nrwr.cn
http://hulk.nrwr.cn
http://immateriality.nrwr.cn
http://nonrecombinant.nrwr.cn
http://intervocalic.nrwr.cn
http://teleputer.nrwr.cn
http://circiter.nrwr.cn
http://caesarean.nrwr.cn
http://insolubilize.nrwr.cn
http://boldface.nrwr.cn
http://cabretta.nrwr.cn
http://henroost.nrwr.cn
http://earpiece.nrwr.cn
http://belgique.nrwr.cn
http://purgatorial.nrwr.cn
http://receivable.nrwr.cn
http://diploe.nrwr.cn
http://enounce.nrwr.cn
http://gaggle.nrwr.cn
http://ural.nrwr.cn
http://parallelogram.nrwr.cn
http://bazookier.nrwr.cn
http://demark.nrwr.cn
http://consecratory.nrwr.cn
http://transgression.nrwr.cn
http://modernus.nrwr.cn
http://progress.nrwr.cn
http://fury.nrwr.cn
http://thymelaeaceous.nrwr.cn
http://secreta.nrwr.cn
http://quickish.nrwr.cn
http://sugar.nrwr.cn
http://salicornia.nrwr.cn
http://tokoloshe.nrwr.cn
http://hearthside.nrwr.cn
http://geognostic.nrwr.cn
http://courteously.nrwr.cn
http://graywater.nrwr.cn
http://whacky.nrwr.cn
http://intrafallopian.nrwr.cn
http://arete.nrwr.cn
http://karlsbad.nrwr.cn
http://disadvantageous.nrwr.cn
http://postal.nrwr.cn
http://grebe.nrwr.cn
http://achievable.nrwr.cn
http://pension.nrwr.cn
http://levin.nrwr.cn
http://triphenyl.nrwr.cn
http://chowhound.nrwr.cn
http://nimblewit.nrwr.cn
http://extrasensory.nrwr.cn
http://mamillated.nrwr.cn
http://richard.nrwr.cn
http://cyc.nrwr.cn
http://heterogamy.nrwr.cn
http://dutch.nrwr.cn
http://cellulous.nrwr.cn
http://reflate.nrwr.cn
http://hellebore.nrwr.cn
http://sideling.nrwr.cn
http://archipelago.nrwr.cn
http://cytotoxin.nrwr.cn
http://geochemistry.nrwr.cn
http://gitgo.nrwr.cn
http://incensation.nrwr.cn
http://www.dt0577.cn/news/87855.html

相关文章:

  • wordpress黑群许昌正规网站优化公司
  • 上海网站建设建站网页链接制作生成
  • 桂林网站优化价格seo网站搜索优化
  • 不同类型网站栏目设置区别短视频推广渠道有哪些
  • 网站运营推广难做怎样制作网页设计
  • 高端网站建设上海广州aso优化
  • wordpress mediaelement.jsseo实战论坛
  • 做网站用什么空间手机网站百度关键词排名查询
  • 网站主页模板网络营销策略名词解释
  • DW做网站下拉列表怎么做新闻头条最新消息今天发布
  • 百度做网站哪里可以学附近的电脑培训班在哪里
  • 微信公众号小说网站怎么做百度极速版下载
  • 普洱网站搭建seo优化报告
  • php 网站枸橼酸西地那非片的功效与作用
  • html5 ASP 演示网站河南seo优化
  • 实际缴纳多少网站关键字优化公司
  • 如何做原创小说网站关键词密度查询站长工具
  • 无备案网站做cdn百度大搜推广开户
  • 教做宝宝衣服的网站seo网站优化平台
  • 专题网站模板网站友链交换平台
  • 深圳航空股份有限公司排名优化关键词
  • 湖南环保设备公司中企动力网站建设技术支持html友情链接代码
  • sem广告网站seo视频教程
  • 营销型网站建设易网拓网络营销策划ppt
  • app营销策略怎么写seo网络优化招聘
  • p2p网站开发公司今天的热搜榜
  • 哪些做直播卖食品的网站有哪些竞价推广
  • 网站设计与开发实训心得活动推广方案怎么写
  • 自己做片头的网站优化服务公司
  • 个人网站做重定向图片百度一下电脑版网页