1.模式定义:为子系统中的一组接口提供一个一致的接口,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用

  1. class System1{
  2. public void doSomeThing(){
  3. System.out.println("System1 working...");
  4. };
  5. }
  6. class System2{
  7. public void doSomeThing(){
  8. System.out.println("System2 working...");
  9. };
  10. }
  11. class System3{
  12. public void doSomeThing(){
  13. System.out.println("system3 working...");
  14. };
  15. }
  16. class Facade{
  17. static System1 system1 = new System1();
  18. static System2 system2 = new System2();
  19. static System3 system3 = new System3();
  20. public static void doSomeThing(){
  21. system1.doSomeThing();
  22. system2.doSomeThing();
  23. system3.doSomeThing();
  24. }
  25. }
  26. public class FacadeTest {
  27. public static void main(String[] args) {
  28. Facade.doSomeThing();
  29. }
  30. }

应用场景
1.当您需要使用复杂子系统的有限但直接的接口时,请使用Facade模式。
2.当您想要将子系统组织成层时,请使用Facade。

优点:
简化客户端的调用

源码中的经典应用
1org.apache.catalina.connector.RequestFacade