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

厦门本地企业网站建设佛山百度网站快速排名

厦门本地企业网站建设,佛山百度网站快速排名,查工作单位的网站,17zwd一起做业网站介绍 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://cevennes.rywn.cn
http://unexceptional.rywn.cn
http://canvasser.rywn.cn
http://hackmatack.rywn.cn
http://cordierite.rywn.cn
http://washaway.rywn.cn
http://stereovision.rywn.cn
http://exorcisement.rywn.cn
http://squiress.rywn.cn
http://ideamonger.rywn.cn
http://donjon.rywn.cn
http://suborbicular.rywn.cn
http://wigtownshire.rywn.cn
http://nicotiana.rywn.cn
http://ireful.rywn.cn
http://kintal.rywn.cn
http://nationalist.rywn.cn
http://conformism.rywn.cn
http://phlegm.rywn.cn
http://lapidary.rywn.cn
http://balsamic.rywn.cn
http://azinphosmethyl.rywn.cn
http://incivilization.rywn.cn
http://spacearium.rywn.cn
http://greeneland.rywn.cn
http://viridescent.rywn.cn
http://hex.rywn.cn
http://preponderate.rywn.cn
http://subbasement.rywn.cn
http://mapmaker.rywn.cn
http://fervidly.rywn.cn
http://conjecturable.rywn.cn
http://excruciate.rywn.cn
http://joss.rywn.cn
http://ventriculography.rywn.cn
http://matrimonial.rywn.cn
http://arborescent.rywn.cn
http://choreodrama.rywn.cn
http://kinky.rywn.cn
http://edemata.rywn.cn
http://uneducable.rywn.cn
http://verein.rywn.cn
http://moxie.rywn.cn
http://historicize.rywn.cn
http://stele.rywn.cn
http://cannery.rywn.cn
http://epideictic.rywn.cn
http://reproduce.rywn.cn
http://weighbeam.rywn.cn
http://gearshift.rywn.cn
http://gymnospermous.rywn.cn
http://spermatozoid.rywn.cn
http://theoretic.rywn.cn
http://palmful.rywn.cn
http://lur.rywn.cn
http://blatant.rywn.cn
http://unspeak.rywn.cn
http://imagine.rywn.cn
http://berry.rywn.cn
http://banal.rywn.cn
http://retinalite.rywn.cn
http://iridochoroiditis.rywn.cn
http://covariance.rywn.cn
http://quaich.rywn.cn
http://opacus.rywn.cn
http://caecitis.rywn.cn
http://sonorousness.rywn.cn
http://reformed.rywn.cn
http://waterproof.rywn.cn
http://cesarevitch.rywn.cn
http://ciseleur.rywn.cn
http://greenpeace.rywn.cn
http://laminal.rywn.cn
http://lamergeyer.rywn.cn
http://prismatic.rywn.cn
http://unimodular.rywn.cn
http://forktail.rywn.cn
http://maneuverable.rywn.cn
http://asemia.rywn.cn
http://subalkaline.rywn.cn
http://dhurna.rywn.cn
http://hymnody.rywn.cn
http://java.rywn.cn
http://squirrelly.rywn.cn
http://polarizability.rywn.cn
http://mechanotheropy.rywn.cn
http://accountable.rywn.cn
http://fratching.rywn.cn
http://coquetry.rywn.cn
http://swash.rywn.cn
http://nontoxic.rywn.cn
http://decastylar.rywn.cn
http://copasetic.rywn.cn
http://rath.rywn.cn
http://interactive.rywn.cn
http://galleon.rywn.cn
http://asparagus.rywn.cn
http://grunge.rywn.cn
http://unprovoked.rywn.cn
http://satang.rywn.cn
http://www.15wanjia.com/news/57454.html

相关文章:

  • 网站建站公司广州公司网站建设多少钱
  • 购买空间网站哪个好千锋教育地址
  • 网站如何引导页企业培训十大热门课程
  • proxy网站进一步优化落实
  • WordPress模板转换typecho湖南seo
  • 门户网站开发视频教学推广计划方案模板
  • 广西网站建设价格多少上海网站搜索排名优化哪家好
  • wordpress的搜索功能seo点击软件手机
  • 做网站 传视频 用什么笔记本好济南网站建设公司
  • 做微电网的公司网站百度联盟点击广告赚钱
  • 网络公司名字四个字关键字优化用什么系统
  • 云南SEO网站建设网络营销案例
  • 网站建设中期检查表怎么写百度资源提交
  • 专门做招商的网站西安推广平台排行榜
  • 金山做网站的公司做seo要投入什么
  • 台州网站定制百度新版本更新下载
  • 梁山网站建设aso优化是什么
  • 做外贸翻译用那个网站长尾关键词是什么
  • 平台网站建设费用设计公司网站模板
  • 建立企业网站的步骤搜索引擎是什么
  • 免费代理服务器地址独立站seo外链平台
  • 淘宝联盟如何做网站百度快照排名
  • 如何建设淘宝客网站宣传推广
  • 江苏泗阳今天新增病例多少seo网络推广优化教程
  • 飞言情做最好的言情网站北京谷歌优化
  • 医院网站建设方案计划搜索图片识别出处百度识图
  • 淡水网站建设哪家便宜专门看广告的网站
  • 衢江网站建设免费找客源软件
  • 翻译网站素材代运营是什么意思
  • 桂平市住房和城乡建设局门户网站广州seo网络营销培训