1、简介
门面模式通过提供一个可以访问所有接口的一个接口,从而达到隐藏系统复杂性的目的
2、简单的示意图
3、涉及的角色
3.1、门面角色:这个角色知晓所有相关的子系统的功能和责任
3.2、子系统角色:如上图的模块A、B、C 子系统可以被客户端直接调用,也可以被门面角色调用。子系统不知道门面的存在
3.3、客户端
4、源代码
4.1、子系统A
package Facade; /** * ******************************************************** * @ClassName: ModuleA * @Description: 子系统A * ********************************************************** */ public class ModuleA { //示意方法 public void testA(){ System.out.println("调用ModuleA中的testA方法"); } }
4.2、子系统B
package Facade; /** * ******************************************************** * @ClassName: ModuleB * @Description: 子系统B * ********************************************************** */ public class ModuleB { //示意方法 public void testB(){ System.out.println("调用ModuleB中的testB方法"); } }
4.3、子系统C
package Facade; /** * ******************************************************** * @ClassName: ModuleC * @Description: 子系统C * ********************************************************** */ public class ModuleC { //示意方法 public void testC(){ System.out.println("调用ModuleC中的testC方法"); } }
4.4、门面角色
package Facade; /** * ******************************************************** * @ClassName: Facade * @Description: 门面角色 * ********************************************************** */ public class Facade { //示意方法,满足客户端需要的功能 public void test(){ ModuleA a = new ModuleA(); a.testA(); ModuleB b = new ModuleB(); b.testB(); ModuleC c = new ModuleC(); c.testC(); } }
4.5、测试客户端
package Facade; /** * ******************************************************** * @ClassName: Client * @Description: 门面模式测试客户端 * ********************************************************** */ public class Client { public static void main(String[] args) { Facade facade = new Facade(); facade.test(); } }
5、测试,运行如下
所有评论(0)