設計模式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
中介者模式優勢不言而喻,下降耦合性,可是缺點就是會使程序變得臃腫,邏輯複雜。設計