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

网站建设公司哪里找搜狗指数官网

网站建设公司哪里找,搜狗指数官网,网站平台开发,天津公司建设网站中介者模式(Mediator Pattern) 中介者模式是一种行为型设计模式,旨在通过封装一系列对象之间的交互方式,使其能够独立地进行通信。 中介者模式的核心思想是将对象之间的直接通信改为通过一个中介者对象来进行间接通信,…

中介者模式(Mediator Pattern)

中介者模式是一种行为型设计模式,旨在通过封装一系列对象之间的交互方式,使其能够独立地进行通信。
中介者模式的核心思想是将对象之间的直接通信改为通过一个中介者对象来进行间接通信,从而减少对象之间的耦合度。
在中介者模式中,中介者(Mediator)对象充当了协调者的角色,它负责控制和管理多个 colleague 对象之间的通信过程。
colleague 对象则相互依赖于中介者对象,通过中介者来实现彼此之间的通信,而不是直接交互。

以下是中介者模式的基本组成部分:
Mediator(中介者):定义中介者接口,通常包含用于协调 colleague 对象之间通信的方法。
ConcreteMediator(具体中介者):实现中介者接口,具体实现协调 colleague 对象之间通信的逻辑。
Colleague(同事):定义同事对象的接口,通常包含了被中介者调用的方法。
ConcreteColleague(具体同事):实现同事接口,与其他同事对象进行通信,并在需要时与中介者对象进行交互。
中介者模式的优点包括:
减少了对象间的直接耦合,增加了可维护性和灵活性。
通过集中管理对象间的通信,简化了系统的设计和实现。
可以更方便地扩展和修改系统,增加新的 colleague 对象或修改中介者逻辑。

然而,中介者模式也存在一些缺点:
中介者对象可能会变得复杂,并承担过多的责任。
中介者模式在一定程度上违背了单一职责原则,因为它需要处理大量 colleague 对象之间的通信逻辑。
中介者模式适用于同事之间存在复杂的关联关系,且彼此之间的通信行为难以直接管理和维护的情况。
它可以帮助我们在系统中构建松耦合的对象间交互机制,提高系统的可拓展性和可维护性。

提供demo版代码更容易理解

/*** @author zhou*  中介者接口*/
interface Mediator {void sendMessage(String message, Colleague colleague);
}/*** @author zhou*  具体中介者类*/
class ConcreteMediator implements Mediator {private Colleague colleague1;private Colleague colleague2;public void setColleague1(Colleague colleague1) {this.colleague1 = colleague1;}public void setColleague2(Colleague colleague2) {this.colleague2 = colleague2;}@Overridepublic void sendMessage(String message, Colleague colleague) {if (colleague == colleague1) {colleague2.receiveMessage(message);} else if (colleague == colleague2) {colleague1.receiveMessage(message);}}
}/*** @author zhou*  抽象同事类*/
abstract class Colleague {protected Mediator mediator;public Colleague(Mediator mediator) {this.mediator = mediator;}public abstract void sendMessage(String message);public abstract void receiveMessage(String message);
}/*** @author zhou*  具体同时类1*/
class ConcreteColleague1 extends Colleague {public ConcreteColleague1(Mediator mediator) {super(mediator);}@Overridepublic void sendMessage(String message) {mediator.sendMessage(message, this);}@Overridepublic void receiveMessage(String message) {System.out.println("ConcreteColleague1 received message: " + message);}
}/*** @author zhou*  具体同时类2*/
class ConcreteColleague2 extends Colleague {public ConcreteColleague2(Mediator mediator) {super(mediator);}@Overridepublic void sendMessage(String message) {mediator.sendMessage(message, this);}@Overridepublic void receiveMessage(String message) {System.out.println("ConcreteColleague2 received message: " + message);}
}/*** @author zhou*  客户端实现*/
public class MediatorPatternDemo {public static void main(String[] args) {ConcreteMediator mediator = new ConcreteMediator();ConcreteColleague1 colleague1 = new ConcreteColleague1(mediator);ConcreteColleague2 colleague2 = new ConcreteColleague2(mediator);mediator.setColleague1(colleague1);mediator.setColleague2(colleague2);colleague1.sendMessage("Hello, colleague2!");colleague2.sendMessage("Hi, colleague1!");}
}

中介者(Mediator)接口定义了消息的发送方法sendMessage,具体中介者类(ConcreteMediator)实现了该接口,
并通过引入两个具体同事类(ConcreteColleague1和ConcreteColleague2)来协调他们之间的信息交互。
每个具体同事类都持有中介者对象,并实现了消息的发送(sendMessage)和接收(receiveMessage)方法。

http://www.ritt.cn/news/12102.html

相关文章:

  • 做网站如何推广买量百度销售
  • 网站设计 日语谷歌chrome官网
  • 网站开发工具和平台脚上起小水泡还很痒是怎么回事
  • 旗袍网页制作模板谷歌优化的网络公司
  • 成都的网站建设开发公司网店运营培训哪里好
  • 网站rss地址生成网络营销总结
  • 建设网站的特色推广普通话的重要意义
  • 厦门做网站企业百度总部在哪里
  • 软文营销平台seo怎么做?
  • 做网站职业咋样谷歌商店paypal三件套
  • 什么是门户网站广告知乎关键词排名
  • 色块布局网站首页模板手游代理加盟哪个平台最强大
  • alexa网站排名培训机构学校
  • 西安做公司网站线上线下整合营销方案
  • 重庆网站备案关键词排名点击软件怎样
  • 网站改版设计方案百度网盘官网入口
  • Wordpress隐藏文字内容湖南靠谱的关键词优化
  • 做网站费用联系方式知名的搜索引擎优化
  • 包头网站建设多少钱中国制造网网站类型
  • 网站制作学费多少钱营销推广怎么做
  • 网站做直播需要什么资质常德seo公司
  • 网站做下载wordseo教程论坛
  • 建湖网站建设价格seo网站推广服务
  • 自己做的网站怎么在百度上搜到营销软文范例大全100字
  • 手机企业网站开发网络营销费用预算
  • 哪些网站可以找兼职做室内设计百度指数怎么看排名
  • 公司小程序开发山东公司网站推广优化
  • 188旅游网站管理系统职业技能培训班
  • 拉萨网站建设公司百度竞价推广有哪些优势
  • 分析公司网站的开发策略西安seo网站推广优化