设计模式-外观模式

先举例子:你去医院看病,普通的流程为挂号,看病,拿药,打针等等一系列步骤,如果说看病的窗口挪了一下,那你的路程也要改变,这就违反了开闭原则,所以有了外观模式,对外有一个统一的接口,类似于你进医院把你的症状告诉那个人,他会替你去挂号看病拿药等等,你只需要等他的反馈。先来看例子

挂号

public class PartA {
    public void work(){
        System.out.println("挂号");
    }
}

看病

public class PartB {
    public void work(){
        System.out.println("看病");
    }
}

拿药

public class PartC {
    public void work(){
        System.out.println("拿药");
    }
}

外观者

public class Facer {
    private PartA A=new PartA();
    private PartB B=new PartB();
    private PartC C=new PartC();
    public void work(){
        A.work();
        B.work();
        C.work();
    }
}

测试类

public class Peoson {
    public static void main(String[] args) {
   new Facer().work();
    }
}

 总结:可以这么理解,外观者封装了具体的细节,我们只需要调用外观者,外观者对外修改时关闭的,满足了开闭原则,我们只需要把一系列任务交给外观者,需要使用的时候调用外观者对象就可以了。

应用场景:当一个系统很复杂,有很多子系统时使用外观模式对台提供一个接口访问,或者当客户端于多个子系统耦合度很高时使用外观模式将他们分离,在功能需要删减的时候只需要取消对用的外观者调用可以,从而提高子系统的独立性。

不和别人一样,不复制只真正理解
原文地址:https://www.cnblogs.com/Vinlen/p/12785557.html