設計模式----外觀模式UML和實現代碼(5個必須掌握的設計模式)

1、什麼是外觀模式?

外觀模式(Facade)定義:爲子系統中的一組接口提供一個一致的界面,些模式定義了一個高層接口。這個接口使得這一子系統更加容易使用。
java

類型:結構型模式git

順口溜:適裝組享代github

2、外觀模式UML

3、JAVA代碼實現

package com.amosli.dp.structural.facade;

public class Facade {
	SubsystemOne one;
	SubsystemTwo two;
	SubsystemThree three;

	public Facade() {
		one = new SubsystemOne();
		two = new SubsystemTwo();
		three = new SubsystemThree();
	}

	public void methodA() {
		System.out.println("group A:");
		one.operation1();
		two.operation2();
	}

	public void methodB() {
		System.out.println("group B:");
		three.operation3();
	}
}

package com.amosli.dp.structural.facade;

public class SubsystemOne {
	public void operation1(){
		System.out.println("deal 1 part...");
	}
}

package com.amosli.dp.structural.facade;

public class SubsystemTwo {
	public void operation2(){
		System.out.println("deal 2 part...");
	}
}

package com.amosli.dp.structural.facade;

public class SubsystemThree {
	public void operation3(){
		System.out.println("deal 3 part...");
	}
}

package com.amosli.dp.structural.facade;

public class Client {
	public static void main(String[] args) {
		Facade facade = new Facade();
		facade.methodA();
		facade.methodB();
	}
}

4、使用場景

在如下狀況下能夠考慮使用外觀模式:spa

(1)設計初期階段,應該有意識的將不一樣層分離,層與層之間創建外觀模式。

(2) 開發階段,子系統愈來愈複雜,增長外觀模式提供一個簡單的調用接口。

(3) 維護一個大型遺留系統的時候,可能這個系統已經很是難以維護和擴展,但又包含很是重要的功能,爲其開發一個外觀類,以便新系統與其交互。

5、源碼地址

本系列文章源碼地址,https://github.com/amosli/dp  歡迎Fork  & Star !!設計

相關文章
相關標籤/搜索