1.概念
爲子系統中的一組接口提供一個統一接口。Facade模式定義了一個高層接口,這個接口使得這子系統更容易使用。
2.UML
3.代碼
下面是一個具體案例的代碼:
package facade; class DrawerOne { public void open(){ System.out.println("第一個抽屜被打開了"); getKey(); } public void getKey(){ System.out.println("得到第二個抽屜的鑰匙"); } } class DrawerTwo{ public void open(){ System.out.println("第二個抽屜被打開了"); getFile(); } public void getFile(){ System.out.println("得到這個重要文件"); } } class DrawerFacade{ DrawerOne darwerOne=new DrawerOne(); DrawerTwo darwerTwo=new DrawerTwo(); public void open(){ darwerOne.open(); darwerTwo.open(); } } public class DrawerClient{ public static void main(String []args){ DrawerFacade drawer=new DrawerFacade(); drawer.open(); } }
4.應用場景
1)爲一個複雜子系統提供一個簡單接口。
2)提高子系統的獨立性。
3)在層次化結構中,可以使用Facade模式定義系統中每一層的入口。