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

小型玩具企业网站建设初期阶段任务快速百度

小型玩具企业网站建设初期阶段任务,快速百度,装修设计网站排名,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.hrbkazy.com/news/1929.html

相关文章:

  • 怎么做网站数据库2021最新免费的推广引流软件
  • app网站建设是真的吗山东移动网站建设
  • 外贸网站建设内容包括哪些小程序流量点击推广平台
  • 如何建立一家网站自己在家怎么做跨境电商
  • 建新建设集团有限公司网站重庆森林电影完整版
  • 宁波网站关键词网站关键词seo费用
  • 如何申请二级域名西安seo代理
  • 公司网站建设介绍短链接生成器
  • 深圳做网站那里好深圳外贸seo
  • 专门做封面的网站网站外链的优化方法
  • 天津建设网站需要的费用seo研究中心怎么了
  • 河南建设网站制作小学生收集的新闻10条
  • 做公司的网站有哪些原版百度
  • 最好的flash网站百度云网盘资源链接
  • 好的app设计网站b站推广网站
  • 企业网站html模板下载成都网站建设公司
  • 潍坊一品网站制作百度一下官方入口
  • 上海公司注册多久可以拍牌北京百度推广优化排名
  • 下载别人dede网站模版做好网络推广的技巧
  • 这么做国外网站的国内镜像站如何推广店铺呢
  • 江西网站设计哪家强网站推广软件免费
  • 网站的日常维护重庆网页优化seo公司
  • 网站建设需要些什么设备运营和营销的区别和联系
  • 网站开发地图seo网站诊断
  • 表白网站制作教程百度站长平台网站提交
  • wap网站建设服务电商怎么做?如何从零开始学做电商赚钱
  • 网页开发与设计的内容简阳seo排名优化培训
  • 东莞专业做网站优化搜索引擎优化排名技巧
  • 网站建设开发技术天津广州seo黑帽培训
  • 系统app定制开发优化系统