zoukankan      html  css  js  c++  java
  • 设计模式-外观模式

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

    挂号

    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();
        }
    }

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

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

    不和别人一样,不复制只真正理解
  • 相关阅读:
    systemtap没找到函数变量
    systemtap get var of the tracepoing
    如何在tracepoint上注册函数
    stap中的entry函数
    stap用法
    在submit_bio处使用stapn
    巴达努斯
    perf事件的切换
    perf原理再看
    内存回收的阈值
  • 原文地址:https://www.cnblogs.com/Vinlen/p/12785557.html
Copyright © 2011-2022 走看看