设计模式Android 其余相关文章:
【设计模式Android】设计模式六大原则
【设计模式Android】代理模式javascript
定义:定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不须要显示地相互引用,从而使其耦合性松散,并且能够独立地改变他们之间的交互。java
我在网上看到这样一张图,我以为可以很好地说明中介者模式,因此我先借来用用。设计模式
废话很少说,我先创建一个QQ(中介者)。ide
public abstract class AbstractMediator {
public StudentA studentA;
public StudentB studentB;
public StudentC studentC;
public AbstractMediator(){
studentA = new StudentA(this);
studentB = new StudentB(this);
studentC = new StudentC(this);
}
public StudentA getStudentA() {
return studentA;
}
public StudentB getStudentB() {
return studentB;
}
public StudentC getStudentC() {
return studentC;
}
public abstract void talk();
}复制代码
实现:post
public class Mediator extends AbstractMediator{
@Override
public void talk() {
studentA.talk();
studentB.talk();
studentC.talk();
}
}复制代码
先抽象一个学生类:ui
public abstract class AbstractStudent {
public String name;
public String content;
public AbstractMediator mediator;
public AbstractStudent(AbstractMediator mediator){
this.mediator = mediator;
}
public abstract void talk();
}复制代码
而后创建几个学生StudentA,B,C,BC与A同样,我这里就写一个便可:this
public class StudentA extends AbstractStudent{
public StudentA(AbstractMediator mediator) {
super(mediator);
name ="aaa";
content = "hello";
}
@Override
public void talk() {
System.out.printf(name+"对"+mediator.getStudentB().name+"说:"+content);
}
}复制代码
当中介者中管理的类少的时候,总感受有些像代理模式,这实际上是因为中介者模式是下降一些类之间耦合性,当只下降两个类的耦合性时,写法上跟代理模式就差很少了,可是基本思想仍是不同的。
中介者模式中各个类之间是平级的,StudentA,StudentB等,可是代理模式不是,其实解耦的两个类应该是调用关系。spa
中介者模式优势不言而喻,下降耦合性,可是缺点就是会使程序变得臃肿,逻辑复杂。设计