1.概念
为子系统中的一组接口提供一个统一接口。Facade模式定义了一个高层接口,这个接口使得这子系统更容易使用。
2.UML
3.代码
下面是一个具体案例的代码:
package com.iter.devbox.facade;
/**
* 子系统角色中的类
* @author Shearer
*
*/
public class ModuleA {
public void testA() {
System.out.println("调用ModuleA中的testA方法");
}
}
package com.iter.devbox.facade;
/**
* 子系统角色中的类
* @author Shearer
*
*/
public class ModuleB {
public void testB() {
System.out.println("调用ModuleB中的testB方法");
}
}
package com.iter.devbox.facade;
/**
* 子系统角色中的类
* @author Shearer
*
*/
public class ModuleC {
public void testC() {
System.out.println("调用ModuleC中的testC方法");
}
}
package com.iter.devbox.facade;
/**
* 门面角色类
* @author Shearer
*
*/
public class Facade {
//示意方法,满足客户端需要的功能
public void test(){
ModuleA a = new ModuleA();
a.testA();
ModuleB b = new ModuleB();
b.testB();
ModuleC c = new ModuleC();
c.testC();
}
}
package com.iter.devbox.facade;
/**
* 客户端角色类
* @author Shearer
*
*/
public class Client {
public static void main(String[] args) {
Facade facade = new Facade();
facade.test();
}
}
4.应用场景
1)为一个复杂子系统提供一个简单接口。
2)提高子系统的独立性。
3)在层次化结构中,可以使用Facade模式定义系统中每一层的入口。