外觀模式(言簡意賅)

Facade模式優點:

  • 屏蔽了外部客戶端和系統內部模塊的交互
  • Facade的功能可以被多個客戶端調用,可以實現複用(功能的共享)
  • 對使用Facade的人員來說,Facade大大的節省了他們的學習成本

Facade模式缺點: 不符合開閉原則

本質:封裝交互、簡化調用

如果一個系統有好幾個子系統的話,每一個子系統有一個外觀類,整個系統可以有數個外觀類。

在層次化結構中,可以使用Facade模式定義系統中每一層的入口點。如果子系統之間是相互依賴的,則可以讓他們僅通過Facade進行通信,從而簡化他們之間的依賴關係。

在這裏插入圖片描述

4個子系統:

public class System1 {

	public void method1() {
        System.out.println("子系統方法 1");
	}
}
public class System2 {

	public void method2() {
        System.out.println("子系統方法 2");
	}
}
public class System3 {

	public void method3() {
        System.out.println("子系統方法 3");
	}
}

public class System4 {

	public void method4() {
        System.out.println("子系統方法 4");
	}
}

外觀類:

public class Facade {

	private System1 system1;
	private System2 system2;
	private System3 system3;
	private System4 system4;
	public Facade() {}
	public Facade(System1 system1, System2 system2, System3 system3, System4 system4) {
		super();
		this.system1 = system1;
		this.system2 = system2;
		this.system3 = system3;
		this.system4 = system4;
	}
	
	public void methodA() {
		system1.method1();
		system2.method2();
	}
	
	public void methodB() {
		system3.method3();
		system4.method4();
	}
}

客戶端:

public class Main {

	public static void main(String[] args) {
		Facade facade=new Facade();
		facade.methodA();
		facade.methodB();
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章