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

石家庄建设局网站怎么打不开站优化

石家庄建设局网站怎么打不开,站优化,普洱网站建设,做it的兼职网站有哪些中介者模式 中介者模式又称为调解者模式或调停者模式,属于行为型模式。它用一个中介对象封装系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 中介者模式包装了一系列对…

中介者模式

中介者模式又称为调解者模式或调停者模式,属于行为型模式。它用一个中介对象封装系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使它们可以松散耦合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。其核心思想是,通过中介者解耦系统各层次对象的直接耦合,层次对象的对外依赖通信统统交由中介者转发。

中介者模式通过提供一个中介类,将系统各层次对象间的多对多关系变成一对多关系,将复杂的网状结构变成以调停者为中心的星形结构,达到降低系统的复杂性,提高可扩展性的作用。

 

应用场景

当多个类相互耦合,形成了网状结构,则可以考虑使用中介者模式进行优化。

1、系统中对象之间存在比较复杂的引用关系,导致它们之间的依赖关系结构混乱而且难以复用该对象。2、想通过一个中间类来封装多个类中的行为,而又不想生成太多的子类。

飞行器驾驶员之间不会通过相互沟通来决定下一架降落的飞机。 所有沟通都通过控制塔台进行。

主要角色

1.抽象中介者(Mediator)

定义统一的接口,用于各同事角色之间的通信

2.具体中介者(ConcreteMediator)

从具体的同事对象接收消息,向具体同事对象发出命令,协调各同事间的协作

3.抽象同事类(Colleague)

每一个同事对象均需要依赖中介者角色,与其他同事间通信时,交由中介者进行转发协作

4.具体同事类(ConcreteColleague)

负责实现自发行为(Self-Method),转发依赖方法

 

优缺点

优点:

1.减少类间依赖,将多对多依赖转化成了一对多,降低了类间耦合;2.类间各司其职,符合迪米特法则。

缺点:

1.中介者模式中将原本多个对象直接的相互依赖变成了中介者和多个同事类的依赖关系。当同事类越多时,中介者就会越臃肿,变得复杂且难以维护。

基本使用

创建抽象中介者

public abstract class Mediator {protected ConcreteColleagueA colleagueA;protected ConcreteColleagueB colleagueB;public void setColleageA(ConcreteColleagueA colleague) {this.colleagueA = colleague;}public void setColleageB(ConcreteColleagueB colleague) {this.colleagueB = colleague;}// 中介者业务逻辑public abstract void transferA();public abstract void transferB();
}

创建具体中介者

public class ConcreteMediator extends Mediator {/*** 由具体同事类A,向具体同事对象B发出指令*/@Overridepublic void transferA() {this.colleagueB.selfMethodB();}/*** 由具体同事类B,向具体同事对象A发出指令*/@Overridepublic void transferB() {this.colleagueA.selfMethodA();}
}

创建抽象同事类

public abstract class Colleague {protected Mediator mediator;public Colleague(Mediator mediator) {this.mediator = mediator;}
}

创建具体同事类

public class ConcreteColleagueA extends Colleague {public ConcreteColleagueA(Mediator mediator) {super(mediator);this.mediator.setColleageA(this);}/*** 自有方法*/public void selfMethodA() {System.out.println( this.getClass().getSimpleName()+ "收到中介协作通知,selfMethodA自有方法执行");}/*** 依赖方法*/public void depMethodA() {System.out.println( this.getClass().getSimpleName()+ " depMethodA通知中介者进行转发协作");// 中介者进行转发协作this.mediator.transferA();}
}
public class ConcreteColleagueB extends Colleague {public ConcreteColleagueB(Mediator mediator) {super(mediator);this.mediator.setColleageB(this);}/*** 自有方法*/public void selfMethodB() {System.out.println(this.getClass().getSimpleName() + "收到中介协作通知,selfMethodB自有方法执行");}/*** 依赖方法*/public void depMethodB() {System.out.println(this.getClass().getSimpleName() + " depMethodB通知中介者进行转发协作");// 中介者进行转发协作this.mediator.transferB();}
}

客户端执行

    public static void main(String[] args) {// 创建抽象中介者Mediator mediator = new ConcreteMediator();// 具体同事类ConcreteColleagueA colleagueA = new ConcreteColleagueA(mediator);ConcreteColleagueB colleagueB = new ConcreteColleagueB(mediator);// 中介者进行转发协作,A转发给BcolleagueA.depMethodA();System.out.println("-------------------------");// 中介者进行转发协作,B转发给AcolleagueB.depMethodB();}
ConcreteColleagueA depMethodA通知中介者进行转发协作
ConcreteColleagueB收到中介协作通知,selfMethodB自有方法执行
-------------------------
ConcreteColleagueB depMethodB通知中介者进行转发协作
ConcreteColleagueA收到中介协作通知,selfMethodA自有方法执行
http://www.mmbaike.com/news/56301.html

相关文章:

  • 模板网站有什么不好官网seo怎么做
  • 浙江省建设监理协会官方网站网络推广引流有哪些渠道
  • Php做网站要求类似互推商盟的推广平台
  • 网站建设的步骤教程视频教程地推团队如何收费
  • 定时切换照片wordpress西安关键词优化平台
  • 东莞市万江疫情最新消息网站排名优化制作
  • 微信做淘宝客网站网站排名掉了怎么恢复
  • 家居企业网站建设报价合肥网站优化方案
  • 如何做好网站seo优化网站流量指标有哪些
  • 成都上市的网站建设公司鞍山做网站的公司
  • 整站优化关键词推广自助搭建平台
  • 赌博网站开发公司搜索引擎营销优化
  • wordpress 第一张图片 get first福州seo结算
  • java 做直播网站有哪些软件有哪些seo域名综合查询
  • 软件工程师资格证旺道seo工具
  • 如何做网站推广方案网络推广营销方案100例
  • 南宁微信网站制作外贸快车
  • wordpress支持什么语言宁波seo网络推广软件系统
  • 直接访问网页seo排名快速优化
  • 合肥百度团购网站建设什么叫做优化
  • 企云网站建设爱上链外链购买交易
  • 贵州新闻北京seo公司排名
  • 加盟合作招商百度seo公司哪家强一点
  • wordpress怎么设置后台权限谷歌seo优化排名
  • sdcms网站建设模板朝阳网络推广
  • 国际电商平台有哪些珠海百度关键字优化
  • 揭阳东莞网站建设网站的宣传推广方式
  • 网站怎么做直播功能网络推广一般都干啥
  • 做网站 有哪些问题一个新公众号怎么吸粉
  • 做网站最简单的北京企业网络推广外包