外观:
    一般用在子系统中与访问之间,用于对访问屏蔽复杂的子系统调用,采用外观类提供的简单调用方法,具体的实现由外观类去子系统调用。
    外观模式类似中间件,使用外观模式之后子系统的方法调用并非完全屏蔽,只是为访问者提供了yizhogn最佳的访问方式,如果你不嫌麻烦,可以直接进行子系统方法调用
    场景:
    当我们访问的子系统拥有复杂的结构,内部调用繁杂,接触中无法下手时,设计一个外观类来提供访问,同一路径(集中到外观类中),将繁杂的调用结合起来形成一个总调用写到外观类中,直接在外观类中找对应的方法进行调用。

    1. /**
    2. * 子系统
    3. */
    4. public class SubMethod1 {
    5. public void method1() {
    6. System.out.println("子系统方法1");
    7. }
    8. }
    1. /**
    2. * 子系统2
    3. */
    4. public class SubMethod2 {
    5. public void method2() {
    6. System.out.println("子系统2");
    7. }
    8. }
    1. /**
    2. * 外观类
    3. */
    4. public class Facader {
    5. private SubMethod1 sm1 = new SubMethod1();
    6. private SubMethod2 sm2 = new SubMethod2();
    7. public void facMethod1() {
    8. sm1.method1();
    9. sm2.method2();
    10. }
    11. public void facMethod2() {
    12. sm2.method2();
    13. sm1.method1();
    14. }
    15. }
    1. public class Clienter {
    2. public static void main(String[] args) {
    3. Facader facader = new Facader();
    4. facader.facMethod1();
    5. }
    6. }
    7. //子系统方法1
    8. //子系统2