例子:现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其"分而治之",把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。 门面模式解决的就是设计一个门面接待员,让用户可以一次性访问自己想要的系统,而不是一个个的去跑
1.代码示例
1.1 系统模块A
代码语言:javascript复制public class ModuleA {
//示意方法
public void testA(){
System.out.println("调用ModuleA中的testA方法");
}
}
1.2 系统模块B
代码语言:javascript复制public class ModuleB {
//示意方法
public void testB(){
System.out.println("调用ModuleB中的testB方法");
}
}
1.3 系统模块C
代码语言:javascript复制public class ModuleC {
//示意方法
public void testC(){
System.out.println("调用ModuleC中的testC方法");
}
}
1.4 门面接待员
代码语言:javascript复制public class Facade {
//示意方法,满足客户端需要的功能
public void test(){
ModuleA a = new ModuleA();
a.testA();
ModuleB b = new ModuleB();
b.testB();
ModuleC c = new ModuleC();
c.testC();
}
}
1.5 测试用例
代码语言:javascript复制public class Test {
public static void main(String[] args) {
Facade facade = new Facade();
facade.test();
}
}