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

网站建设以及维护手机算命网站建设

网站建设以及维护,手机算命网站建设,湖南网络公司排名,推广普通话的意义简短中介者模式 中介者模式又称为调解者模式或调停者模式#xff0c;属于行为型模式。它用一个中介对象封装系列的对象交互#xff0c;中介者使各对象不需要显示地相互作用#xff0c;从而使其耦合松散#xff0c;而且可以独立地改变它们之间的交互。 中介者模式包装了一系列对…中介者模式 中介者模式又称为调解者模式或调停者模式属于行为型模式。它用一个中介对象封装系列的对象交互中介者使各对象不需要显示地相互作用从而使其耦合松散而且可以独立地改变它们之间的交互。 中介者模式包装了一系列对象相互作用的方式使得这些对象不必相互明显作用。从而使它们可以松散耦合。当某些对象之间的作用发生改变时不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。其核心思想是通过中介者解耦系统各层次对象的直接耦合层次对象的对外依赖通信统统交由中介者转发。 中介者模式通过提供一个中介类将系统各层次对象间的多对多关系变成一对多关系将复杂的网状结构变成以调停者为中心的星形结构达到降低系统的复杂性提高可扩展性的作用。   应用场景 当多个类相互耦合形成了网状结构则可以考虑使用中介者模式进行优化。 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.dnsts.com.cn/news/198048.html

相关文章:

  • 智能建站系统哪个好科技公司网站设计服务
  • 新乡手机网站建设官网深圳网站建设制作开发
  • 小程序商城页面设计重庆seo网络推广平台
  • 什么网站可以找人做软件下载用wordpress做外贸网站
  • 深圳市公司网站建设企业网站qq交谈怎么做的
  • 网站制作月薪多少WordPress生成电商小程序
  • 网页设计和网站制作重庆个人建站模板
  • 九九建筑网登入杭州seo招聘
  • php 装修网站杭州平面设计师工资一般多少
  • 酒店网站建设流程自己免费制作app平台
  • wordpress动漫视频网站网络精准营销推广
  • window做网站的软件下载短链接生成官网
  • 检查网站死链接app平台开发定制软件
  • 能找本地人做导游的网站艺术视频手机网站可以做吗
  • 备案期间怎么访问网站dz增加网站标签
  • 做网站菠菜什么意思公司网站怎样备案
  • 网站开发详细报价单WordPress文章付费系统
  • 网站定制开发要多少钱湛江网站建设工作
  • 福州网站建设公司中小企业成都响应网站建设
  • 网站和数字界面设计师户县微网站建设
  • 网站地图对seo的影响wordpress怎么置顶
  • 做网站seo的公司哪家好东莞市官网网站建设怎么样
  • 女人和男人做爰网站班组建设管理网站
  • 怎么在免费空间里面做网站WordPress允许用户删除评论
  • 外贸网站建设优化网络营销编辑干什么的
  • 产品介绍网站模板宜兴市做网站
  • 网站管理制度建设的情况泉州seo用户体验
  • 网站建设规划方案ppt启动wordpress linux
  • 网站框架一般用什么做手机网站建设的第一个问题
  • 广州网站建设设计厂家大岭山网站