Android知識:Facade介紹

外觀模式(Facade),為子系統中的一組介面提供一個一致的界面,此模式定義了一個高層介面,這個介面使得這一子系統更加容易使用

facade.png

四個子系統的類

public class SubSystemOne {

public void methodOne(){

System.out.println("子系統方法一");

}

}

public class SubSystemTwo {

public void methodTwo(){

System.out.println("子系統方法二");

}

}

public class SubSystemThree {

public void methodThree(){

Advertisements

System.out.println("子系統方法三");

}

}

public class SubSystemFour {

public void methodFour(){

System.out.println("子系統方法四");

}

}

外觀類

public class Facade {

SubSystemOne one;

SubSystemTwo two;

SubSystemThree three;

SubSystemFour four;

public Facade() {

one = new SubSystemOne();

two = new SubSystemTwo();

three = new SubSystemThree();

Advertisements

four = new SubSystemFour();

}

public void methodA(){

one.methodOne();

two.methodTwo();

three.methodThree();

}

public void methodB(){

one.methodOne();

two.methodTwo();

three.methodThree();

four.methodFour();

}

}

推薦下我們的Android開發技術學習平台 :246458474,不管你是小白還是大牛,我都挺歡迎,不定期分享乾貨,每天直播分享技能歡迎初學和進階中的小夥伴,大家一起交流學習,共同進步!

客戶端調用

public class TestFacade {

public static void main(String[] args) {

Facade facade=new Facade();

facade.methodA();

facade.methodB();

}

}

外觀模式的目的

不是給子系統添加新的功能介面,而是為了讓外部減少與子系統內多個模塊的交互,鬆散耦合,從而讓外部能夠更簡單的使用子系統。

優缺點

優點

鬆散耦合

簡單易用

更好的劃分訪問的層次

缺點

過多的或者是不太合理的Facade也容易讓人迷惑。到底是調用Facade好還是直接調用模塊好。

本質

封裝交互,簡化調用

何時選用外觀模式

如果你希望為複雜的子系統提供一個簡單介面的時候,可以考慮使用外觀模式。使用外觀對象對實現大部分客戶需要的功能,從而簡化客戶的使用。

如果想要讓客戶程序和抽象類的實現部分鬆散耦合,可以考慮使用外觀模式,使用外觀對象來將這個子系統與它的客戶分離開來,從而提高子系統的獨立性和可移植性。

如果構建多層結構的系統,可以考慮使用外觀模式,使用外觀對象作為每層的入口,這樣就可以簡化層間調用,也可以鬆散層次之間的依賴關係。

作者:zzqFive

來源:簡書

Advertisements

你可能會喜歡