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

做网站后台要学什么人教版优化设计电子书

做网站后台要学什么,人教版优化设计电子书,北京发布最新公告,宿州医疗网站建设中介者模式 描述基本使用使用 描述 为了简化多个类间复杂的耦合关系,单独定义一个中介者 将边界交互的部分交给中介者,从而简化各个类内部逻辑 个人建议在3个及以上的类间存在复杂交互关系时再考虑中介者,否则可能反而增加系统复杂度 基本使…

中介者模式

  • 描述
    • 基本使用
    • 使用

描述

为了简化多个类间复杂的耦合关系,单独定义一个中介者
将边界交互的部分交给中介者,从而简化各个类内部逻辑
个人建议在3个及以上的类间存在复杂交互关系时再考虑中介者,否则可能反而增加系统复杂度

基本使用

  • 定义抽象业务对象(引用中介者)
public abstract class AbstractColleague {protected AbstractMediator mediator;public AbstractColleague(AbstractMediator _mediator) {this.mediator = _mediator;}
}
  • 定义三个具体业务对象
public class ColleagueA extends AbstractColleague {public ColleagueA(AbstractMediator _mediator) {super(_mediator);}/*** 外部调a* @param a*/public void action(int a) {System.out.println("a..." + a);}public void action2() {System.out.println("a 内部业务");this.invokeMediator(2);}/*** a 调外部* @param a*/private void invokeMediator(int a) {System.out.println("a外部交互..." + a);mediator.doAction("a", "a的业务参数");}
}public class ColleagueB extends AbstractColleague {public ColleagueB(AbstractMediator _mediator) {super(_mediator);}/*** 外部调b* @param b*/public void action(int b) {System.out.println("b..." + b);}public void action2() {System.out.println("b 内部业务");this.invokeMediator(3);}/*** b 调外部* @param b*/private void invokeMediator(int b) {System.out.println("invokeMediator..." + b);mediator.doAction("b", "b的业务参数");}
}public class ColleagueC extends AbstractColleague {public ColleagueC(AbstractMediator _mediator) {super(_mediator);}/*** 外部调c* @param c*/public void action(int c) {System.out.println("c..." + c);}public void action2() {System.out.println("c 内部业务");this.invokeMediator(3);}/*** c 调外部* @param c*/private void invokeMediator(int c) {System.out.println("invokeMediator..." + c);mediator.doAction("c", "c的业务参数");}
}
  • 定义提抽象中介者
public abstract class AbstractMediator {public abstract void doAction(String command, Object... param);
}
  • 定义具体中介者(中介者要关联所有相关方,代替各方直接调用其他业务方)
public class MediatorAbc extends AbstractMediator {private ColleagueA colleagueA;private ColleagueB colleagueB;private ColleagueC colleagueC;public MediatorAbc() {this.colleagueA = new ColleagueA(this);this.colleagueB = new ColleagueB(this);this.colleagueC = new ColleagueC(this);}@Overridepublic void doAction(String command, Object... param) {switch (command) {case "a":// a -> 调用 b cthis.colleagueB.action(param.length);this.colleagueC.action(param.length);break;case "b":// b -> 调用 a cthis.colleagueA.action(param.length);this.colleagueC.action(param.length);break;case "c":// c -> 调用 a bthis.colleagueA.action(param.length);this.colleagueB.action(param.length);break;default:throw new RuntimeException();}}
}

使用

其实就是字面意思,将和其他模块交互的部分交给中介完成(由中介去沟通各方 这和现实中的中介如出一辙

public class Sample {public static void main(String[] args) {ColleagueA colleagueA  = new ColleagueA(new MediatorAbc());colleagueA.action2();}
}
http://www.dtcms.com/wzjs/164036.html

相关文章:

  • 移动端网站怎么做外链赣州seo唐三
  • 手机网站前端用什么做厦门最快seo
  • 课程网站建设规划方案做网站需要准备什么
  • 美工做图素材网站链接网
  • 织梦做的网站如何放在网上app推广软件
  • 做网站 看什么书搜索引擎优化英文简称
  • 抚宁建设局网站云建站模板
  • 响应式网站的优点网店运营推广实训
  • 自己做游戏的网站百度导航下载2021最新版
  • 常州网站价格惠州seo按天付费
  • 四川建设考试培训网嘉兴seo优化
  • 网站建立的研究方案百度最怕哪个部门去投诉
  • 校园学生网站开发百度浏览器广告怎么投放
  • 求购做网站网站关键词优化公司哪家好
  • 免费的网站推广怎么做效果好?世界比分榜
  • 怎么做投票管理系统后台网站seo推广网络
  • 网站建设 项目背景正规考证培训机构
  • 旅游网站建设水平评价软件开发平台
  • 网站建设 资讯动态seo关键词大搜
  • 网站信息化建设建议智慧软文
  • 蔡家坡网站开发打字赚钱平台 学生一单一结
  • 网站被黑的表现搜索引擎优化的常用方法
  • 网站栏目规划叫什么自助建站系统破解版
  • 专业做db网站的公司近期国际新闻热点大事件
  • 做网站运营企业网站建设价格
  • 龙华做网站的公司百度一下你就知道了官网
  • 网站制作 那种语言好北京百度总部
  • 辽宁省住房和城乡建设部网站西安百度推广网站建设
  • 怎么做网站代理商广州seo和网络推广
  • 百达翡丽手表网站我要软文网