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

网站建设公司选择哪家好口子网站怎么做

网站建设公司选择哪家好,口子网站怎么做,wordpress 筛选 文章,wordpress drupal 插件中介者模式是由GoF提出的23种软件设计模式的一种。Mediator模式是行为模式之一#xff0c;Mediator模式定义:用一个中介者对象来封装一系列的对象交互。中介者使各对象不需要显式的相互引用#xff0c;从而使其耦合松散#xff0c;而且可以独立的改变他们之间的交互。适用性…中介者模式是由GoF提出的23种软件设计模式的一种。Mediator模式是行为模式之一Mediator模式定义:用一个中介者对象来封装一系列的对象交互。中介者使各对象不需要显式的相互引用从而使其耦合松散而且可以独立的改变他们之间的交互。适用性1)一组对象以定义良好但是复杂的方式进行通信。产生的相互依赖关系结构混乱且难以理解。2)一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象。3)想定制一个分布在多个类的行为而又不想生成太多的子类。结构图如下colleague向一个中介者对象发送和接受请求。中介者在各个colleague间适当的转发请求以实现协作行为。优缺点1)减少了子类生成Mediator将原本分布于多个对象间的行为集中在一起改变这些行为只需生成Mediator的子类即可这样各个Colleague类可被重用。2)它将各Colleague解耦。Mediator有利于各Colleague间的松耦合你可以独立的改变和复用各Colleague类和Mediator类。3)它简化了对象协议用Mediator和各Colleague间的一对多的交互来代替多对多的交互。一对多的关系更易于理解、维护和扩展。4)它对对象如何协作进行了抽象将中介作为一个独立的概念并将其封装在一个对象中使你将注意力从对象各自本身的行为转移到它们之间的交互上来。这有助于弄清楚一个系统中的对象是如何交互的。5)它使控制集中化中介者模式将交互的复杂性变为中介者的复杂性。因为中介者封装了协议它可能变得比任一个Colleague都复杂。这可能使得中介者自身成为一个难于维护的庞然大物。1、Colleague.javapackage mediator;public abstract class Colleague {private Mediator mediator;private String message;public Colleague(Mediator m){mediator m;}public Mediator getMediator(){return mediator;}public String getMessage(){return message;}public void setMessage(String message){this.message message;}public abstract void sendMsg(Colleague colleague);public abstract void getMsg(Colleague colleague);}2、Colleague的子类Colleague1,Colleague2,Colleague3package mediator;public class Colleague1 extends Colleague{public Colleague1(Mediator m){super(m);}Overridepublic void getMsg(Colleague colleague) {getMediator().action(colleague,0);//System.out.println(Colleague1 has got the message-);}Overridepublic void sendMsg(Colleague colleague) {getMediator().action(colleague,1);//System.out.println(Colleague1 has send the message msg);}}package mediator;public class Colleague2 extends Colleague{public Colleague2(Mediator m){super(m);}Overridepublic void getMsg(Colleague colleague) {getMediator().action(colleague,0);//System.out.println(Colleague2 has got the message-);}Overridepublic void sendMsg(Colleague colleague) {getMediator().action(colleague,1);//System.out.println(Colleague2 has send the message msg);}}package mediator;public class Colleague3 extends Colleague{public Colleague3(Mediator m){super(m);}Overridepublic void getMsg(Colleague colleague) {getMediator().action(colleague,0);//System.out.println(Colleague3 has got the message-);}Overridepublic void sendMsg(Colleague colleague) {getMediator().action(colleague,1);//System.out.println(Colleague3 has send the message msg);}}3、Mediator抽象类:package mediator;public abstract class Mediator {/*** param sender* param flag   0是读1是发送*/public abstract void action(Colleague sender,int flag);//mediator针对colleague的一个交互行为public abstract void addCollegue(Colleague colleague);//加入mediator对象}4、Mediator的子类package mediator;import java.util.ArrayList;import java.util.List;public class ConcreteMediator extends Mediator{private List  member new ArrayList();Overridepublic void action(Colleague sender,int flag) {String msg sender.getMessage();for(Colleague colleague : member){if(colleague.equals(sender)){if(flag0){System.out.println(这是从sender接收到的消息:sender.getMessage());}else{sender.setMessage(test.......);}break;}}}Overridepublic void addCollegue(Colleague colleague) {member.add(colleague);}}5、测试类package mediator;public class MediatorTEST {public static void main(String[] args){Mediator mediator new ConcreteMediator();Colleague colleague1 new Colleague1(mediator);Colleague colleague2 new Colleague2(mediator);Colleague colleague3 new Colleague3(mediator);mediator.addCollegue(colleague1);mediator.addCollegue(colleague2);mediator.addCollegue(colleague3);// Colleague1 触发行为colleague1.setMessage(嗨大家好);// Colleague2 触发行为colleague2.setMessage(很高兴见到你);// Colleague3 触发行为colleague3.setMessage(我们一起玩游戏吧);colleague1.getMsg(colleague2);colleague1.sendMsg(colleague2);colleague1.getMsg(colleague2);}}
http://www.yutouwan.com/news/283207/

相关文章:

  • 北京网站设计公司jq成都柚米科技15如何把网站让百度录用
  • 网站播放功能难做吗合肥外贸网站建设公司
  • 电子相册在线制作网站东莞网站建设 少儿托管
  • 涪陵建设工程信息网站wordpress活动插件
  • 做旅游攻略网站备案 网站
  • 付费做网站关键词优化是怎么做的呀做外贸上哪些网站找客户
  • 北京建站模板源码线下推广渠道和方式
  • 音乐中文网站模板下载做园林景观的网站
  • 网站建设与电子商务的教案free wordpress themes
  • 做计算机网站的总结网站服务器租赁需要什么手续
  • 云南网站设计平台网站和网络有什么区别
  • 站长之家源码下载湖南网站营销优化开发
  • 企业建设网站需要注意什么手续怎么做软件程序
  • 头像设计制作网站阿里云官网首页
  • php怎么建立站点物业管理系统和物业管理软件
  • 郑州网站推广公司排名苏州电商系统开发
  • 邢台wap网站建设报价重庆建设岗位培训网站
  • 基金会网站建设登录wordpress数据库
  • 做竞品分析去哪个网站互联网有多少网站
  • 怎做连接网站重庆知名设计公司有哪些
  • 大网站开发语言石家庄网站建设公司哪家好
  • 做宠物网站心得网站开发入股合作分配比例
  • php网站开发文本格式设置在网站设计公司上班好吗
  • 网站开发保密合同wordpress 中文文件名
  • 西安网站建设报价方案中国计算机网络公司排名
  • 网站关键字选择标准网站建设风险怎样规避
  • 微商网站模板上海公司排名前十
  • 长沙网建站中国建设银行网站对公账户首页
  • 东莞中赢网站建设公司怎么样建设门户网站需要多少钱
  • 5000多一年的网站建站怎么做物流网站代理