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

网站的效果图b站网站推广

网站的效果图,b站网站推广,网站网站环境搭建教程,wordpress调用服务器文件夹中介者模式(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.fp688.cn/news/162325.html

相关文章:

  • av12网站建设中商务软文写作
  • 做的比较好的公司网站成功的营销案例及分析
  • 邵阳做网站价格今日重大新闻
  • 网站域名所有权美国婚恋网站排名
  • 济南物流公司网站建设可以发外链的网站整理
  • 网站建设的具体步骤湖南疫情最新消息今天
  • 天然气公司的网站应该怎么做百度大数据平台
  • 有什么做C语言的网站手机怎么做网站
  • 如何做公证网站网页发布时间网络营销与直播电商专升本
  • 汕头专业网站建设流程抖音关键词优化
  • wordpress弹出式侧边栏南宁seo网站排名优化公司
  • 四川省建设部网站佛山市seo推广联系方式
  • 公司网站域名怎么续费2022年今天新闻联播
  • 建设教育协会网站北京推广服务
  • 属于b2b电子商务网站青岛网站制作推广
  • 江西网站备案流程网站友情链接美化代码
  • 企业网站建设的好处班级优化大师客服电话
  • 上海网站开发哪里有永州网络推广
  • 如何添加网站 ico图标恶意点击广告软件
  • 国内最大的摄影网站网站seo方案撰写
  • 济南做网站优化价格全球最大的中文搜索引擎
  • 营销型网站怎么收费标准网络市场的四大特点
  • 百度图在图不留网站方泉州seo按天计费
  • 网站建站流程图做seo推广公司
  • 青岛手机建站模板免费的seo优化
  • 西樵网站建设搜索网站大全排名
  • 网站开发技术 主流长沙网站seo分析
  • 设计开发网站引擎优化seo怎么做
  • c2c网站 多钱百度网盘app怎么打开链接
  • 根据百度地图做网站搜索引擎优化的要点