深圳做小程序网站开发,wordpress禁止ip访问,网站建设毕业设计 任务书,泰顺做网站2019独角兽企业重金招聘Python工程师标准 Mediator中介者设计模式是通过一个中介对象封装一系列关于对象交互行为. Mediator中介者设计模式中的角色如下#xff1a; (1).中介者#xff08;Mediator#xff09;#xff1a;抽象定义了“同事”#xff08;co… 2019独角兽企业重金招聘Python工程师标准 Mediator中介者设计模式是通过一个中介对象封装一系列关于对象交互行为. Mediator中介者设计模式中的角色如下 (1).中介者Mediator抽象定义了“同事”colleagues稍后有定义们通信的接口。 (2).具体中介者Concrete Mediator实现了“同事”间的通信接口。 (3).同事Colleague参与通信的实体抽象。 (4).具体同事Concrete Colleague实现的参与通信的实体。 Mediator中介者设计模式结构如下 以私信聊天为例来简单演示Mediator中介者设计模式例子代码如下 //中介者
interface Mediator{public void send(String msg, Person person);
}//具体中介者
class ConcreteMediator implements Mediator{//中介者所联系的交互对象private PersonA personA;private PersonA personB;public void setPersonA(PersonA personA){this.personA personA;}Public void setPersonB(PersonB personB){this.personB personB;}public void send(String msg, Person person){if(person.equals(personA)){personA.greeting(msg);}else{personB.greeting(msg);}}
} //抽象同事
abstract class Person{//同事和中介者打交道protected Mediator mediator;public Person(Mediator mediator){this.mediator mediator;}
}//具体同事
class PersonA extends Person{public PersonA(Mediator mediator){super(mediator);}public void send(String msg){mediator.send(msg, this);}public void greeting(string msg){System.out.println(“PersonA: ” msg);}
} class PersonB extends Person{public PersonB(Mediator mediator){super(mediator);}public void send(String msg){mediator.send(msg, this);}public void greeting(string msg){System.out.println(“PersonB: ” msg);}
} public class MediatorDemo{public static void main(String[] args){//创建中介Mediator mediator new ConcreteMediator();//创建同事并为同事设置中介Person personA new PersonA(mediator);Person personB new PersonB(mediator);//向中介设置同事mediator.setPersonA(personA);mediator.setPersonB(personB);//开始聊天personA.send(“Hi, B!”);personB.send(“Hello, A!”);}
} 在对象之间的交互操作非常多的情况下;每个对象的行为操作都可能依赖很多其他对象,修改一个对象的行为的同时可能会影响到很多其他对象的行为,如果使用Mediator模式,可以使各个对象间的耦合松散,只需关心和 Mediator的关系,使多对多的关系变成了一对多的关系,在降低系统复杂性的同时提高可修改扩展性. 转载于:https://my.oschina.net/hongdengyan/blog/196348