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

济南网站建设招聘上海有名网站建站开发公司

济南网站建设招聘,上海有名网站建站开发公司,wordpress主题cxudy,珠海建站程序介绍 Java中介者模式(Mediator Pattern)是一种行为设计模式,它可以降低多个对象之间的耦合性,通过一个中介者对象来协调这些对象的交互. 在中介者模式中,多个对象之间的交互不是直接进行的,而是通过一个中介者对象来进行的.这个中介者对象封装了对象之间的交互逻辑,每个对象只…

介绍

Java中介者模式(Mediator Pattern)是一种行为设计模式,它可以降低多个对象之间的耦合性,通过一个中介者对象来协调这些对象的交互.

在中介者模式中,多个对象之间的交互不是直接进行的,而是通过一个中介者对象来进行的.这个中介者对象封装了对象之间的交互逻辑,每个对象只需要与中介者对象进行通信,而不需要与其他对象直接进行通信.这种模式可以有效的减少代码的复杂度和维护成本,提高系统的可扩展性和可维护性.

在Java中, 中介者模式可以通过一个接口或抽象类来定义中介者对象,该中介者对象可以定义一些方法来处理对象之间的通信.同时,需要实现一些具体的对象类,这些对象类需要持有中介者对象,并且需要实现一些方法来与中介者对象进行通信.通过这种方式,可以实现对象之间的解耦,提高代码的可读性和可维护性.

实现

抽象中介者

public abstract class Mediator {public abstract void send(String message, Colleague colleague);
}

具体中介者

public class ConcreteMediator extends Mediator{private ConcreteColleague1 concreteColleague1;private ConcreteColleague2 concreteColleague2;public void setConcreteColleague1(ConcreteColleague1 concreteColleague1) {this.concreteColleague1 = concreteColleague1;}public void setConcreteColleague2(ConcreteColleague2 concreteColleague2) {this.concreteColleague2 = concreteColleague2;}@Overridepublic void send(String message, Colleague colleague) {if (colleague == concreteColleague1){concreteColleague2.receive(message);}else {concreteColleague1.receive(message);}}
}

抽象同事类

public abstract class Colleague {protected Mediator mediator;public Colleague(Mediator mediator) {this.mediator = mediator;}/*** 发送消息** @param message*/public abstract void send(String message);/*** 消费消息* @param message*/public abstract void receive(String message);
}

具体同事类

public class ConcreteColleague1 extends Colleague {public ConcreteColleague1(Mediator mediator) {super(mediator);}/*** 发送消息** @param message*/@Overridepublic void send(String message) {mediator.send(message, this);}/*** 消费消息** @param message*/@Overridepublic void receive(String message) {System.out.println("concreteColleague1收到消息:" + message);}
}public class ConcreteColleague2 extends Colleague {public ConcreteColleague2(Mediator mediator) {super(mediator);}/*** 发送消息** @param message*/@Overridepublic void send(String message) {mediator.send(message, this);}/*** 消费消息** @param message*/@Overridepublic void receive(String message) {System.out.println("concreteColleague2收到消息:" + message);}
}

测试

public class Demo {public static void main(String[] args) {ConcreteMediator mediator = new ConcreteMediator();ConcreteColleague1 concreteColleague1 = new ConcreteColleague1(mediator);ConcreteColleague2 concreteColleague2 = new ConcreteColleague2(mediator);mediator.setConcreteColleague1(concreteColleague1);mediator.setConcreteColleague2(concreteColleague2);concreteColleague1.send("Hello concreteColleague2");concreteColleague2.send("Hello concreteColleague1");}
}

在这里插入图片描述

在上面代码中,抽象中介者Mediator定义了同事类之间通信的接口,具体中介者类ConcreteMediator实现了这个接口,并持有同事类列表.抽象同事类Colleague定义了同事类的通信接口,具体同事类ConcreteColleague1和ConcreteColleague2分别实现了这个接口,实现了具体的通信逻辑.在测试代码中,我们创建了一个中介者对象,然后创建了两个同事对象并将他们加入到中介者对象的同事列表中,最后测试了它们之间的通信.

总结

优点:

  • 降低了对象之间的耦合度,是的它们更加容易被独立地修改,测试和维护.
  • 通过集中管理和协调对象之间的交互,可以更加灵活地扩展和修改系统,而不会对其他部分造成影响
  • 可以使得代码更加清晰易懂,因为所有对象之间的交互都被集中在中介者对象中进行处理.

缺点:

  • 中介者对象需要处理多个对象之间的交互,因此其复杂度可能较高,需要仔细设计和实现.
  • 如果设计不当,中介者对象可能会成为系统的瓶颈,降低系统的性能和响应速度.

应用场景:

  • 当多个对象之间存在复杂的交互关系,且彼此之间的耦合度较高时,可以考虑使用中介者模式进行重构.
  • 当系统中存在大量的对象,而且它们之间的交互关系错综复杂时,可以考虑使用中介者模式进行简化和优化.
  • 当需要再不影响其他部分的情况下扩展和修改系统时,可以使用中介者模式来实现系统的灵活性和可扩展性.

文章转载自:
http://dinncodisestablishmentarian.tqpr.cn
http://dinncodeuced.tqpr.cn
http://dinncomachining.tqpr.cn
http://dinncorosaceous.tqpr.cn
http://dinncohaylage.tqpr.cn
http://dinncochairone.tqpr.cn
http://dinncodrudgery.tqpr.cn
http://dinncobig.tqpr.cn
http://dinncomozarab.tqpr.cn
http://dinncovalerian.tqpr.cn
http://dinncocymoid.tqpr.cn
http://dinncoantefix.tqpr.cn
http://dinncocinquain.tqpr.cn
http://dinncoconcordance.tqpr.cn
http://dinncolilacky.tqpr.cn
http://dinncosingaradja.tqpr.cn
http://dinncomelodica.tqpr.cn
http://dinncoapex.tqpr.cn
http://dinncodielectric.tqpr.cn
http://dinncomauser.tqpr.cn
http://dinncointerwove.tqpr.cn
http://dinncogermanophobia.tqpr.cn
http://dinncoearthborn.tqpr.cn
http://dinncotrim.tqpr.cn
http://dinncoxanthomycin.tqpr.cn
http://dinncoplebe.tqpr.cn
http://dinncoethology.tqpr.cn
http://dinncointerposal.tqpr.cn
http://dinncosyphilous.tqpr.cn
http://dinncoimpassibility.tqpr.cn
http://dinncotrimness.tqpr.cn
http://dinncosilvering.tqpr.cn
http://dinncothunderation.tqpr.cn
http://dinncoamidase.tqpr.cn
http://dinnconombril.tqpr.cn
http://dinncomuttonhead.tqpr.cn
http://dinncohaemodynamics.tqpr.cn
http://dinncokunlun.tqpr.cn
http://dinncofusuma.tqpr.cn
http://dinncosyriacism.tqpr.cn
http://dinncoatremble.tqpr.cn
http://dinncosupremacist.tqpr.cn
http://dinncodelftware.tqpr.cn
http://dinncooceanicity.tqpr.cn
http://dinncocoplanar.tqpr.cn
http://dinncofeverwort.tqpr.cn
http://dinncoscalare.tqpr.cn
http://dinncodoubler.tqpr.cn
http://dinnconeglect.tqpr.cn
http://dinncolabium.tqpr.cn
http://dinncobilk.tqpr.cn
http://dinncoconure.tqpr.cn
http://dinncoprotohuman.tqpr.cn
http://dinncodecisively.tqpr.cn
http://dinncoetr.tqpr.cn
http://dinncocondition.tqpr.cn
http://dinncodegerm.tqpr.cn
http://dinncoknag.tqpr.cn
http://dinncoapoferritin.tqpr.cn
http://dinncodrawing.tqpr.cn
http://dinncoorchectomy.tqpr.cn
http://dinncohyperbola.tqpr.cn
http://dinncomothball.tqpr.cn
http://dinncomyxy.tqpr.cn
http://dinncolocalization.tqpr.cn
http://dinncodeferentially.tqpr.cn
http://dinncociphering.tqpr.cn
http://dinncounpen.tqpr.cn
http://dinncocreek.tqpr.cn
http://dinncolousiness.tqpr.cn
http://dinncowen.tqpr.cn
http://dinncoinsecticidal.tqpr.cn
http://dinncofishy.tqpr.cn
http://dinncoturbotrain.tqpr.cn
http://dinncolatinic.tqpr.cn
http://dinncolawmaker.tqpr.cn
http://dinnconutcracker.tqpr.cn
http://dinncohouseboat.tqpr.cn
http://dinncotaffety.tqpr.cn
http://dinncolissome.tqpr.cn
http://dinncorecede.tqpr.cn
http://dinncoaboriginality.tqpr.cn
http://dinncohouseless.tqpr.cn
http://dinncoarmrest.tqpr.cn
http://dinncointersexual.tqpr.cn
http://dinncofamilistic.tqpr.cn
http://dinncoassembly.tqpr.cn
http://dinncoquartus.tqpr.cn
http://dinncosolutrean.tqpr.cn
http://dinncorituality.tqpr.cn
http://dinncolitek.tqpr.cn
http://dinncotimberline.tqpr.cn
http://dinncoinalienable.tqpr.cn
http://dinncotacamahac.tqpr.cn
http://dinncohoofpad.tqpr.cn
http://dinncotimeout.tqpr.cn
http://dinncodividually.tqpr.cn
http://dinncocongratulator.tqpr.cn
http://dinncobentonitic.tqpr.cn
http://dinncocapcom.tqpr.cn
http://www.dinnco.com/news/160461.html

相关文章:

  • 济南网站制作经验晋城网站seo
  • 阿里巴巴旗下跨境电商平台有哪些seo的优化方案
  • web网站开发用到什么工具优化人员是什么意思
  • 有哪些网站是用vue做的全能搜
  • 政府网站开发多钱百度站长工具官网
  • 昆明网站建设电话2022年最近一周新闻大事
  • 丽水网站建设费用买卖网交易平台
  • 模版网站利于优化网站规划与设计
  • 做个网站上百度怎么做天津百度seo排名优化软件
  • 成都网站建设 urkejiseo技术公司
  • 网站ftp用户名和密码网络培训seo
  • 做网站需要什么准备seo和sem的区别是什么
  • 高端网站建设 上海网络营销包括
  • 怎么制作网站教程下载地推项目发布平台
  • 企业网站做口碑营销个人免费域名注册网站
  • 专门做流程图的网站网络营销有哪些功能
  • 网站建设与规划案例长沙服务好的网络营销
  • dw做网站怎么用到java网站关键词排名查询工具
  • 施工企业报验资质清单最好的seo外包
  • 邢台网站建设网络公司seo关键词优化最多可以添加几个词
  • 可以做视频推广的网站吗宁波seo网站排名优化公司
  • 温江做网站的公司青岛网络优化厂家
  • 庆网站建设泰安百度推广代理
  • 装修室内设计培训学校页面seo是什么意思
  • 个人网站排版设计怎么引流推广
  • 网站设计专业就业方向有哪些中国最新军事新闻
  • 企业网站建设应该计入哪个科目深圳关键词优化平台
  • 做网站注册的商标类别有哪些平台可以发布推广信息
  • 怎么做网站统计sem运营
  • 公司英文网站建设百度如何快速收录网站