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

网建企业湖北搜索引擎优化

网建企业,湖北搜索引擎优化,欧美最火的社交网站怎么做,零基础网站建设教学培训班中介者模式 1.中介者模式含义 中介者模式,就是用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地互相引用,从而使其耦合松散,而且可以独立的改变它们之间的交互。 其实中介者模式很简单的,就像它的名字一样&a…

中介者模式

1.中介者模式含义

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

其实中介者模式很简单的,就像它的名字一样,中介,调用某个类的某些方法的时候,我们不直接去跟那个类的实例交互,而是通过一个中间类—中介类,进行交互,这样的模式,就叫中介者模式。

2.代码示例

下面通过一个代码示例讲解一下中介者模式

2.1UnitedNations联合国抽象类

UnitedNations是联合国抽象类,定义一个抽象的declare方法

public abstract class UnitedNations {public abstract void declare(String message, Country country);
}

2.2Country国家抽象类

Country是国家抽象类,定义了一个内部的UnitedNations属性

public class Country {protected UnitedNations mediator;public Country(UnitedNations mediator) {this.mediator = mediator;}
}

2.3USA类

USA类是Country的具体实现类

public class USA extends Country{public USA(UnitedNations mediator) {super(mediator);}public void declare(String message){mediator.declare(message, this);}public void getMessage(String message){System.out.println("美国得到消息:" + message);}
}

2.4Iraq类

Iraq类是Country的具体实现类

public class Iraq extends Country{public Iraq(UnitedNations mediator) {super(mediator);}public void declare(String message){mediator.declare(message, this);}public void getMessage(String message) {System.out.println("伊拉克得到消息:" + message);}
}

2.5 UnitedNationsSecurityCouncil类

UnitedNationsSecurityCouncil类是UnitedNations的具体实现类

public class UnitedNationsSecurityCouncil extends UnitedNations{private USA usa;private Iraq iraq;public void setUsa(USA usa) {this.usa = usa;}public void setIraq(Iraq iraq) {this.iraq = iraq;}@Overridepublic void declare(String message, Country country) {if (country == usa) {iraq.getMessage(message);} else {usa.getMessage(message);}}
}

2.6测试类

public class MainApp {public static void main(String[] args) {UnitedNationsSecurityCouncil unsc = new UnitedNationsSecurityCouncil();USA usa = new USA(unsc);Iraq iraq = new Iraq(unsc);unsc.setUsa(usa);unsc.setIraq(iraq);usa.declare("给我石油我就不打你");iraq.declare("你不打我就给你石油");}
}

运行结果

伊拉克得到消息:给我石油我就不打你
美国得到消息:你不打我就给你石油

从示例代码可以看出,usa调用了自己的declare方法,想给iraq发信息,但是其实usa没有直接调用iraq的getMessage方法,而是通过调用UnitedNations这个中介,来转发消息,usa将消息发给中介,中介再将消息转发给iraq。

iraq给usa发消息也是同理

3.总结

通过示例代码能看出中介者模式是什么,但是为什么要使用中介者模式呢?我直接调用目标类的方法不是一样的吗?

其实中介者模式的出现,减少了各个类互相调用之间的耦合性,使得可以独立地改变和复用各个独立的类。比如具体Country的子类改变,并不会影响到调用它的那个类。并且由于把对象间如何协作进行了抽象,将中介作为一个独立的概念并将其封装在一个对象中,这样关注的对象就从对象各自本身的行为转移到它们之间的交互上来,也就是站在一个更宏观的角度去看待系统。

由于中介者类控制了集中化,于是就把交互复杂性变为了中介者的复杂性,这就使得中介者会比任何一个独立的类对象都复杂。

虽然中介者模式使得各个独立对象解耦了,但是中介者对象自己却变得异常复杂,它需要知道所有具体的要相互调用的类的信息,这样中介者类的职责就又变得很多,添加新的对象后也会要修改中介者类。

所以当系统中出现多对多的复杂交互的对象群的时候,不要急着使用中介者模式,先看看系统设计是否合理,最后再考虑是不是使用中介者模式,不然盲目使用中介者模式,会适得其反,增加系统复杂性。

http://www.hengruixuexiao.com/news/32856.html

相关文章:

  • 网站发布方式有哪些2023年8月新冠又来了
  • 室内设计师网名专用seo网站推广招聘
  • 哪些网站可以做网店怎么制作一个网站
  • 网站 前台 后台长沙网络营销哪家平台专业
  • 网站开发服务费入什么科目郭生b如何优化网站
  • 我在某赌博网站做代理百度推广开户联系方式
  • 网站建设过程中要怎么打开速度拉新推广怎么做代理
  • 取名字的网站 优帮云制定营销推广方案
  • 2017做网站挣钱优化排名 生客seo
  • 搜房网网站跳出率如何建立一个自己的网站啊
  • 日本亲子游哪个网站做的好处优化设计四年级上册语文答案
  • 建网站的地址网站运营方案
  • 网站开发 手机 验证码23岁老牌网站
  • 公司建设网站费用怎么记账百度天眼查
  • 南通教育平台网站建设劳动局免费培训电工
  • 网站建设毕业设计怎么做适合网络营销的产品
  • 如何设置的iis后台服务网站地址销售推广的方法都有哪些
  • 网站返回顶部怎么做织梦seo排名优化教程
  • 南通网站定制方案企业邮箱查询
  • 甘肃网站建设专业定制百度知道网页版入口
  • html网页设计作业成品代码站长之家seo工具
  • 做网站好还是做app好海淀区seo搜索优化
  • 企业网站为什么要备案长春网站制作企业
  • 上海网站建设褐公洲司如何制作微信小程序店铺
  • 中国建设教育协会培训中心网站b站怎么推广
  • 校园网站源码phpseo教程自学
  • 小企业网站 优帮云优化网站内容
  • 做母婴的网站有哪些百度关键词推广价格查询
  • 一级a做爰网站下载网站收录大全
  • 什么是建设网站工具友情链接交易平台