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

做程序的网站网页制作员工作厂家电话

做程序的网站,网页制作员工作厂家电话,南昌成都网站建设方案,企业网站seo教程简介 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互 UML图 应用场景 大量的连接使得一个对象不可能在没有其他对象的支持下工作,系统表现为一个不可分割的…

简介

用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互

UML图

在这里插入图片描述

应用场景
  • 大量的连接使得一个对象不可能在没有其他对象的支持下工作,系统表现为一个不可分割的整体
  • 用于一组对象以定义良好但是复杂的方式进行通信的场合,以及想定制一个分布在多个类中的行为而又不想生成太多的子类的场合

示例

联合国会议,用来处理世界各国的纠纷,联合国相当于中介者,各个国家在联合国进行谈判

  1. Mediator:
public abstract class UnitedNations {/*** 声明** @param message 消息*/public abstract void declare(String message,Country country);
}

理事会

public class UnitedNationsCouncil extends UnitedNations {/*** 国家1*/private USA colleague1;/*** 国家2*/private Iraq colleague2;public void setColleague1(USA colleague1) {this.colleague1 = colleague1;}public void setColleague2(Iraq colleague2) {this.colleague2 = colleague2;}@Overridepublic void declare(String message, Country country) {if (country == colleague1) {// 国家1给国家2带的话colleague2.getMessage(message);} else {colleague1.getMessage(message);}}
}
  1. Colleague:国家
public abstract class Country {/*** 中介者*/protected UnitedNations mediator;public Country(UnitedNations mediator) {this.mediator = mediator;}
}
public class Iraq extends Country {public Iraq(UnitedNations mediator) {super(mediator);}/*** 声明** @param message*/public void declare(String message) {mediator.declare(message, this);}/*** 获取信息** @param message*/public void getMessage(String message) {System.out.println("伊拉克得到对方的信息为:" + message);}
}
public class USA extends Country {public USA(UnitedNations mediator) {super(mediator);}/*** 声明** @param message*/public void declare(String message) {mediator.declare(message, this);}/*** 获取信息*/public void getMessage(String message) {System.out.println("美国获取对方消息为:" + message);}
}
  1. 运行
public class Main {public static void main(String[] args) {// 充当中介 联合国理事会UnitedNationsCouncil nationsCouncil = new UnitedNationsCouncil();// 都认识联合国USA usa = new USA(nationsCouncil);Iraq iraq = new Iraq(nationsCouncil);// 联合国认识两个国家nationsCouncil.setColleague1(usa);nationsCouncil.setColleague2(iraq);// 两个国家发表声明usa.declare("停止开发核武器,否则接受打击");iraq.declare("我们没有开发核武器,也不怕侵略!");}
}

在这里插入图片描述

总结

  • 优点
    • 中介者的出现减少了Colleague之间的耦合,使得可以独立地改变和复用各个Colleague类和中介者
    • 由于把对象如何协作进行了抽象,将中介作为一个独立的改变并将其封装在一个对象中,将关注的对象从对象各自本身的行为转移到它们之间的交互上,可以从宏观角度去看待系统
  • 缺点
    • 由于中介者对象过度的集中化可能导致其复杂性大大增加,导致理解难度增加和可维护性降低
http://www.sczhlp.com/news/120373/

相关文章:

  • 关于旅游电子商务网站建设论文如何从零开始学室内设计
  • 我做网站如何分流客户阿里巴巴每平每屋设计家官网
  • Java 开发核心疑问解析:从 static 修饰到规范实践
  • 实用指南:坤驰科技诚邀您参加——第十三届中国光纤传大会
  • 做网站使用什么语言好河南手机网站建设
  • 凡科建站添加文章绍兴企业网站建设
  • 同创企业网站建设企业查询信息平台
  • 建网站免费软件德国服务器网站
  • 成都网站建设成都做衣服的教程网站有哪些
  • 2025.9.20
  • 图解8:kafka高效原理
  • 最牛的房地产网站建设做任务换流量的网站
  • 做企业网站费用企业网站报价方案模板下载
  • 国内用python做的网站制作公司网站怎么做
  • 寻找基础微网站开发wordpress图像居中
  • 个人淘宝客网站有哪些阳泉软件定制网站建设
  • dede网站更新如何同步腾讯微博更新东莞专业网站建设平台
  • 娄底市住房和城乡建设局网站企业管理系统哪个好
  • 内江 网站建设360免费wifi总是断断续续的掉线
  • 杭州做网点卖服装在那个网站北京网站建设公司华网天下
  • 图解7:渲染原理和性能优化
  • 公司的网站建设费用入什么科目德州市住房建设局网站
  • 南京传销是以网站开发怎么给网站带来流量
  • 东莞官方网站 优帮云大型网站开发用什么语言
  • 建设一个网站要多少费用吗中山 网站关键词优化
  • 网站开发为什么需要团队完成巩义网站建设报价
  • ps做网站网页好吗江门平台入口
  • 重庆光龙网站建设q群排名优化软件
  • 马化腾做的电商网站网站留言模块
  • html网页制作企业类网站公司广告牌制作