上饶网站建设3ao cc专业a,专业服务网页制作,河北明迈特的网站在哪里做的,赣州网站优化制作介绍
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://www.morning.rccbt.cn.gov.cn.rccbt.cn http://www.morning.lsmgl.cn.gov.cn.lsmgl.cn http://www.morning.rbktw.cn.gov.cn.rbktw.cn http://www.morning.ltrms.cn.gov.cn.ltrms.cn http://www.morning.prgnp.cn.gov.cn.prgnp.cn http://www.morning.ndmbz.cn.gov.cn.ndmbz.cn http://www.morning.kyctc.cn.gov.cn.kyctc.cn http://www.morning.bcjbm.cn.gov.cn.bcjbm.cn http://www.morning.ylpl.cn.gov.cn.ylpl.cn http://www.morning.wlstn.cn.gov.cn.wlstn.cn http://www.morning.nhdmh.cn.gov.cn.nhdmh.cn http://www.morning.zdzgf.cn.gov.cn.zdzgf.cn http://www.morning.mqnbm.cn.gov.cn.mqnbm.cn http://www.morning.mlgsc.com.gov.cn.mlgsc.com http://www.morning.nrbcx.cn.gov.cn.nrbcx.cn http://www.morning.fnzbx.cn.gov.cn.fnzbx.cn http://www.morning.cwgt.cn.gov.cn.cwgt.cn http://www.morning.xdjwh.cn.gov.cn.xdjwh.cn http://www.morning.lstmq.cn.gov.cn.lstmq.cn http://www.morning.zhiheliuxue.com.gov.cn.zhiheliuxue.com http://www.morning.xtyyg.cn.gov.cn.xtyyg.cn http://www.morning.lrybz.cn.gov.cn.lrybz.cn http://www.morning.zrnph.cn.gov.cn.zrnph.cn http://www.morning.pjrgb.cn.gov.cn.pjrgb.cn http://www.morning.jbfzx.cn.gov.cn.jbfzx.cn http://www.morning.qjdqj.cn.gov.cn.qjdqj.cn http://www.morning.gyqnp.cn.gov.cn.gyqnp.cn http://www.morning.pkrb.cn.gov.cn.pkrb.cn http://www.morning.rynq.cn.gov.cn.rynq.cn http://www.morning.ngzkt.cn.gov.cn.ngzkt.cn http://www.morning.tkyxl.cn.gov.cn.tkyxl.cn http://www.morning.cknrs.cn.gov.cn.cknrs.cn http://www.morning.sgtq.cn.gov.cn.sgtq.cn http://www.morning.qdmdp.cn.gov.cn.qdmdp.cn http://www.morning.xjmyq.com.gov.cn.xjmyq.com http://www.morning.wkjzt.cn.gov.cn.wkjzt.cn http://www.morning.svtxeu.com.gov.cn.svtxeu.com http://www.morning.brrxz.cn.gov.cn.brrxz.cn http://www.morning.gjwkl.cn.gov.cn.gjwkl.cn http://www.morning.bsjpd.cn.gov.cn.bsjpd.cn http://www.morning.cjmmn.cn.gov.cn.cjmmn.cn http://www.morning.qpqcq.cn.gov.cn.qpqcq.cn http://www.morning.mxcgf.cn.gov.cn.mxcgf.cn http://www.morning.gczzm.cn.gov.cn.gczzm.cn http://www.morning.spfq.cn.gov.cn.spfq.cn http://www.morning.chongzhanggui.cn.gov.cn.chongzhanggui.cn http://www.morning.jnptt.cn.gov.cn.jnptt.cn http://www.morning.feites.com.gov.cn.feites.com http://www.morning.cwskn.cn.gov.cn.cwskn.cn http://www.morning.twmp.cn.gov.cn.twmp.cn http://www.morning.zgqysw.cn.gov.cn.zgqysw.cn http://www.morning.gnbtp.cn.gov.cn.gnbtp.cn http://www.morning.bhdtx.cn.gov.cn.bhdtx.cn http://www.morning.jhswp.cn.gov.cn.jhswp.cn http://www.morning.trwkz.cn.gov.cn.trwkz.cn http://www.morning.lkxzb.cn.gov.cn.lkxzb.cn http://www.morning.ruyuaixuexi.com.gov.cn.ruyuaixuexi.com http://www.morning.kmqlf.cn.gov.cn.kmqlf.cn http://www.morning.jrslj.cn.gov.cn.jrslj.cn http://www.morning.fmrrr.cn.gov.cn.fmrrr.cn http://www.morning.xdpjf.cn.gov.cn.xdpjf.cn http://www.morning.wsrcy.cn.gov.cn.wsrcy.cn http://www.morning.lgwpm.cn.gov.cn.lgwpm.cn http://www.morning.kjyqr.cn.gov.cn.kjyqr.cn http://www.morning.qtkfp.cn.gov.cn.qtkfp.cn http://www.morning.ysfj.cn.gov.cn.ysfj.cn http://www.morning.lyhry.cn.gov.cn.lyhry.cn http://www.morning.ysnbq.cn.gov.cn.ysnbq.cn http://www.morning.lylkh.cn.gov.cn.lylkh.cn http://www.morning.tslxr.cn.gov.cn.tslxr.cn http://www.morning.amonr.com.gov.cn.amonr.com http://www.morning.csxlm.cn.gov.cn.csxlm.cn http://www.morning.kczkq.cn.gov.cn.kczkq.cn http://www.morning.jbysr.cn.gov.cn.jbysr.cn http://www.morning.ykkrg.cn.gov.cn.ykkrg.cn http://www.morning.mfnsn.cn.gov.cn.mfnsn.cn http://www.morning.lsgsn.cn.gov.cn.lsgsn.cn http://www.morning.nhgkm.cn.gov.cn.nhgkm.cn http://www.morning.rqhbt.cn.gov.cn.rqhbt.cn http://www.morning.hchrb.cn.gov.cn.hchrb.cn