Facade:将内部的多个模块封装起来,供外部调用。
目的:让外部减少与子系统内多个模块的交互,松散耦合,让外部简单的使用子系统。
注意:因为Facade是当作子系统对外的接口的出现的,虽然也可以在这里定义一些子系统没有的功能,但不建议这么做。Facade应是包装已有的功能,负责组合已有的功能来实现用户的需要。
本质是:封装交换,简化使用。
使用的情况:
1、位一个复杂的子系统提供一个简单接口的时候。
2、让客户程序和抽象类的实现部分松散耦合,是Facade对象将这个子系统与客户分离开来,提高子系统的独立性和移植性。
3、构建多层结构的系统。
很好的体现了“最少知识原则”。
1 public class Dao { 2 public void generate(){ 3 System.out.println("正在生成数据层代码文件!"); 4 } 5 }
1 public class Presentation { 2 public void generate(){ 3 System.out.println("正在生成表现层代码文件!"); 4 } 5 }
1 public class Business { 2 public void generate(){ 3 System.out.println("正在生成逻辑层代码文件!"); 4 } 5 }
1 public class facade { 2 public void generate(){ 3 new Presentation().generate(); 4 new Business().generate(); 5 new Dao().generate(); 6 } 7 }
1 public class client { 2 public static void main (String[] args){ 3 new facade().generate(); 4 } 5 }
浙公网安备 33010602011771号