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

重庆网站运营公司唐山市城市建设档案馆网站

重庆网站运营公司,唐山市城市建设档案馆网站,哪些网站容易收录,保险网站建设公司中介者模式#xff08;Mediator Pattern#xff09;是一种行为型设计模式#xff0c;其主要作用是通过一个中介对象来封装一系列对象的交互#xff0c;从而降低它们之间的耦合度#xff0c;提高系统的可维护性和可扩展性。 中介者模式的主要特点 封装交互#xff1a;用…中介者模式Mediator Pattern是一种行为型设计模式其主要作用是通过一个中介对象来封装一系列对象的交互从而降低它们之间的耦合度提高系统的可维护性和可扩展性。 中介者模式的主要特点 封装交互用一个中介对象来封装一系列对象的交互这些对象不再直接相互引用而是通过中介者进行交互。降低耦合由于对象之间的交互被封装在中介者对象中因此它们之间的耦合度降低对象可以更加独立地变化和复用。集中控制多个对象之间的交互被封装在中介者对象中集中管理当交互行为发生变化时只需要修改中介者对象即可而不需要修改各个对象。一对多关联通过引入中介者对象将原本多个对象之间复杂的多对多关联关系转变为对象与中介者之间的一对多关联关系简化了系统的结构。 中介者模式的角色 中介者Mediator定义了一个接口用于与各同事对象进行通信。同事对象Colleague实现了一个接口该接口用于与中介者进行通信。同事对象之间不再直接相互引用而是通过中介者进行交互。 中介者模式的优缺点 优点 降低了对象之间的耦合度使得对象更加独立易于复用和维护。将对象间复杂的多对多关联关系转变为简单的一对多关联关系提高了系统的灵活性和可扩展性。集中控制交互行为使得修改和维护更加容易。 缺点 当同事对象数量较多时中介者对象可能会变得臃肿和复杂难以维护。如果中介者对象出现故障可能会导致整个系统崩溃。 适用场景 当系统中对象之间存在复杂的引用关系导致系统结构混乱且难以理解时。当需要创建一个运行于多个类之间的对象但又不想生成新的子类时。当需要改变系统的交互方式但又不希望修改现有的对象时。 示例 我们可以考虑一个简单的聊天室示例其中用户同事对象通过聊天室中介者进行通信。以下是这个示例的Java代码 // 同事接口 interface Colleague {void sendMessage(String message);void receiveMessage(String message);void setMediator(Mediator mediator); }// 用户类实现同事接口 class User implements Colleague {private Mediator mediator;private String name;public User(String name) {this.name name;}Overridepublic void sendMessage(String message) {mediator.sendMessage(this, message);}Overridepublic void receiveMessage(String message) {System.out.println(name received: message);}Overridepublic void setMediator(Mediator mediator) {this.mediator mediator;} }// 中介者接口 interface Mediator {void register(Colleague colleague);void sendMessage(Colleague sender, String message); }// 聊天室类实现中介者接口 class ChatRoom implements Mediator {private ListColleague colleagues new ArrayList();Overridepublic void register(Colleague colleague) {colleagues.add(colleague);colleague.setMediator(this);}Overridepublic void sendMessage(Colleague sender, String message) {for (Colleague colleague : colleagues) {if (!colleague.equals(sender)) {colleague.receiveMessage(sender.name : message);}}} }// 客户端代码 public class Client {public static void main(String[] args) {ChatRoom chatRoom new ChatRoom();User user1 new User(Alice);User user2 new User(Bob);chatRoom.register(user1);chatRoom.register(user2);user1.sendMessage(Hello, Bob! How are you?);} }在这个示例中我们定义了一个Colleague接口它包含了发送和接收消息的方法以及设置中介者的方法。User类实现了这个接口并包含了用户的名字。Mediator接口定义了注册同事和发送消息的方法。ChatRoom类实现了这个接口并管理了一个同事对象的列表。在ChatRoom的sendMessage方法中它遍历了所有的同事对象并将消息发送给除了发送者之外的所有其他同事。 在Client类中我们创建了一个ChatRoom对象和两个User对象并将它们注册到聊天室中。然后我们让Alice向Bob发送一条消息。当这条消息被发送时聊天室会将它转发给所有其他的用户在这个例子中只有Bob并打印出接收到的消息。
http://www.pierceye.com/news/292709/

相关文章:

  • 长沙网站排名优化如何在网站做电子杂志
  • 石家庄科技网站在线解压zip网站
  • 不良网站举报中心官网做网站必须买云虚拟主机吗
  • 网站建设实习wordpress 登陆 插件下载
  • 做耳鼻喉医院网站多少钱北京网站建设营销
  • 济南网站建设就选搜点网络ok外贸平台补贴政策
  • 网站建设 学校百度快照优化培训班
  • 做阀门的英文网站怎么写西安seo服务公司排名
  • 淘宝客网站如何做推广古董手表网站
  • 网站虚拟主机查询企业文化建设的内容有哪些
  • 财经大学网站建设apicloud wordpress
  • 平面设计网站排行榜刚进外贸公司一个月多少钱
  • 企业网站最下面的那栏叫啥广州编程培训机构哪里好
  • 怎么学建设网站网站建设敬请期待图片素材
  • 滴滴出行的网站是哪家公司做的新媒体营销课程心得体会
  • 中国室内设计师联盟网站浙江手机版建站系统开发
  • 网站开源代码模版广州公司注册核名查询系统官网
  • 海外网站seo丹阳市住房建设管理局网站
  • 定制公司网站沙市做网站weisword
  • 平湖模板网站建设公司网站建设项目报告书
  • 校园门户网站解决方案手机与电脑网站制作
  • 济南网站建设 伍际网络网站域名备案授权书
  • 网站开发销售提成网站建设的内部风险分析
  • 网站建设框架都有哪些内容公司名字大全参考2022
  • 成功备案的网站增加域名黄金网站
  • 学习网站开发多少钱北京网页设计公司兴田德润可以吗
  • 如何加强门户网站建设上海好的设计公司
  • h5企业模板网站模板营销推广的渠道方式
  • 怎么学做网站PHP百度搜索风云榜总榜
  • 网站风格模板公司建设官方网站