入门设计模式之外观

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/80871459 学习更多设计模式请参考:入门设计模式之汇总篇外观模式:外部系统与子系统的通信必须通过一个统一的对象进行举个例子,现在结婚是不是都找婚庆公司啊,为什么呢?因为如果不找婚庆公司自己筹备的话,我们可能得自己跑去订酒店,自己去找主持人,自己去找摄像,自己去找车队。
版权声明:本文为博主原创文章,未经博主允许不得转载。博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/80871459


学习更多设计模式请参考:入门设计模式之汇总篇


外观模式:外部系统与子系统的通信必须通过一个统一的对象进行


举个例子,现在结婚是不是都找婚庆公司啊,为什么呢?因为如果不找婚庆公司自己筹备的话,我们可能得自己跑去订酒店,自己去找主持人,自己去找摄像,自己去找车队。是不是太麻烦了点,而有了婚庆公司就不一样了,我可以吩咐他去找酒店,找主持人等等。。。

来看一下类图:


  • 在这里Facade就相当于婚庆公司的角色,我们作为client直接调用Facade的方法,而不关心车队、酒店、主持人等是如何找到的。

代码实现:

public class Car {
    public void carList() {
        System.out.println("-----");
    }
}

public class Host {
    public void married() {
        System.out.println("-----");
    }
}

public class Hotel {
    public void party() {
        System.out.println("-----");
    }
}

public class Facade {
    private Host host =new Host();
    private Hotel hotel =new Hotel();
    private Car car=new Car();

    public void married(){
        host.married();
    }
    public void carList(){
        car.carList();
    } public void party(){
        hotel.party();
    }
}





本文出自https://zhixiang.org.cn/#/blog/read/f4d2fba7-c5a4-42fd-a54a-203f8ebeb4b9,转载请保留。


学习更多设计模式请参考:入门设计模式之汇总篇


外观模式:外部系统与子系统的通信必须通过一个统一的对象进行


举个例子,现在结婚是不是都找婚庆公司啊,为什么呢?因为如果不找婚庆公司自己筹备的话,我们可能得自己跑去订酒店,自己去找主持人,自己去找摄像,自己去找车队。是不是太麻烦了点,而有了婚庆公司就不一样了,我可以吩咐他去找酒店,找主持人等等。。。

来看一下类图:


  • 在这里Facade就相当于婚庆公司的角色,我们作为client直接调用Facade的方法,而不关心车队、酒店、主持人等是如何找到的。

代码实现:

public class Car {
    public void carList() {
        System.out.println("-----");
    }
}

public class Host {
    public void married() {
        System.out.println("-----");
    }
}

public class Hotel {
    public void party() {
        System.out.println("-----");
    }
}

public class Facade {
    private Host host =new Host();
    private Hotel hotel =new Hotel();
    private Car car=new Car();

    public void married(){
        host.married();
    }
    public void carList(){
        car.carList();
    } public void party(){
        hotel.party();
    }
}





本文出自https://zhixiang.org.cn/#/blog/read/f4d2fba7-c5a4-42fd-a54a-203f8ebeb4b9,转载请保留。


相关文章
|
3月前
|
设计模式 监控 安全
多线程设计模式【多线程上下文设计模式、Guarded Suspension 设计模式、 Latch 设计模式】(二)-全面详解(学习总结---从入门到深化)
多线程设计模式【多线程上下文设计模式、Guarded Suspension 设计模式、 Latch 设计模式】(二)-全面详解(学习总结---从入门到深化)
62 0
|
3月前
|
设计模式 安全 Java
多线程设计模式【线程安全、 Future 设计模式、Master-Worker 设计模式 】(一)-全面详解(学习总结---从入门到深化)
多线程设计模式【线程安全、 Future 设计模式、Master-Worker 设计模式 】(一)-全面详解(学习总结---从入门到深化)
26 0
|
6月前
|
设计模式 IDE 测试技术
【设计模式——学习笔记】设计模式前置知识:UML类图入门
【设计模式——学习笔记】设计模式前置知识:UML类图入门
33 0
|
6月前
|
设计模式 Java
设计模式~门面(外观)模式(Facade)-08
目录 (1)优点 (2)缺点 (3)使用场景 (4)注意事项: (5)应用实例: (6)源码中的经典应用 代码 外观模式(Fac
26 0
|
9月前
|
设计模式 算法 前端开发
设计模式入门-工厂系列(保姆级教程)
设计模式入门-工厂系列(保姆级教程)
|
设计模式 算法
设计模式入门
设计模式入门
设计模式入门
|
设计模式 监控 安全
多线程设计模式-全面详解(学习总结---从入门到深化)(下)
关于上下文(Context),我们在开发的过程中经常会遇到,比如开发 Struts2 的 ActionContext、 Spring 中的 ApplicationContext,上下文是贯穿整个系统或阶段生 命周期的对象,其中包含了系统全局的一些信息
92 0
多线程设计模式-全面详解(学习总结---从入门到深化)(下)
|
设计模式 缓存 并行计算
多线程设计模式-全面详解(学习总结---从入门到深化)(上)
Single Thread Execution 模式是指在同一时刻只能有一个线程去访问共享资源,就 像独木桥一样每次只允许一人通行,简单来说, Single Thread Execution 就是采用排 他式的操作保证在同一时刻只能有一个线程访问共享资源。
122 0
多线程设计模式-全面详解(学习总结---从入门到深化)(上)
|
设计模式 中间件
【设计模式】外观
【设计模式】外观
96 0
【设计模式】外观
|
设计模式 存储 Dart
dart设计模式之外观,享元,代理模式
模式分析 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。
116 0