1.定义:
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
2.示例代码:
Java代码
/*A模块的接口*/
public interface AModuleApi{
public void testA();
}
/*A模块的实现*/
public class AModuleImpl implements AModuleApi{
public void testA(){
System.out.println("现在A模块里操作testA方法");
}
}
/*B模块的接口*/
public interface BModuleApi{
public void testB();
}
/*B模块的实现*/
public class BModuleImpl implements BModuleApi{
public void testB(){
System.out.println("现在B模块里操作testB方法");
}
}
/*C模块的接口*/
public interface CModuleApi{
public void testC();
}
/*C模块的实现*/
public class CModuleImpl implements CModuleApi{
public void testC(){
System.out.println("现在C模块里操作testC方法");
}
}
Java代码
/*定义外观对象*/
public class Facade{
public void test(){
AModuleApi a = new AModuleImpl();
a.testA();
BModuleApi b = new BModuleImpl();
b.testB();
CModuleApi c = new CModuleImpl();
c.testC();
}
}
Java代码
/*客户端调用*/
public class Client{
public static void main(String args[]){
new Facade().test();
}
}
3.实际应用:
外观模式的目的不是给子系统添加新的功能接口,而是为了让外部减少与子系统内部多个模块的交互,松散耦合,从而让外部能够更简单的使用子系统。外观应该是包装已有的功能,它主要负责组合已有功能来实现客户需求,而不是添加新的实现。
外观模式的本质:封装交互,简化调用
网友评论