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模式定义系统中每一层的入口。