首页 > 其他分享 >设计模式学习(十):门面模式

设计模式学习(十):门面模式

时间:2022-11-11 03:22:13浏览次数:59  
标签:void 模式 class 门面 设计模式 public

设计模式学习(十):门面模式

作者:Grey

原文地址:

博客园:设计模式学习(十):门面模式

CSDN:设计模式学习(十):门面模式

门面模式

门面模式是一种结构型模式。

门面模式为子系统提供一组统一的接口,定义一组高层接口让子系统更易用。

假设建造一个房子需要有如下三个步骤:

第一步,和泥

第二步,搬砖

第三步,砌墙

如果每次我们制造一个房子都要分别调用这三个方法,就会比较麻烦一些,我们可以设置一个门面,这个门面封装了这三个步骤,后续建造房子,只需要调用这个门面即可。

和泥

public class Mason {
    public void mix() {
        System.out.println("我和好泥了!");
    }
}

搬砖

public class BrickWorker {
    public void carry() {
        System.out.println("我搬好砖了!");
    }
}

砌墙

public class BrickLayer {
    public void neat() {
        System.out.println("我砌好墙了!");
    }
}

门面

public class LabourConstractor {
    private Mason work1 = new Mason();
    private BrickWorker work2 = new BrickWorker();
    private BrickLayer work3 = new BrickLayer();

    public void buildHouse() {
        work1.mix();
        work2.carry();
        work3.neat();
    }
}

这样主函数只需要调用门面的 buildHourse() 方法,就可以建造一个房子了

public class Client {
    public static void main(String[] args) {
        LabourConstractor labour = new LabourConstractor();
        labour.buildHouse();
    }
}

门面模式的 UML 图如下

image

门面模式应用

  • Linux 的系统调用和 Shell 脚本

Linux 系统调用函数就可以看作一种“门面”。它是 Linux 操作系统暴露给开发者的一组“特殊”的编程接口,它封装了底层更基础的 Linux 内核调用。再比如, Linux 的 Shell 命令,实际上也可以看作一种门面模式的应用。它继续封装系统调用,提供更加友好、简单的命令,让我们可以直接通过执行命令来跟操作系统交互。

  • Spring JDBC 中的 JdbcUtils类,包装了 JDBC 相关的所有操作。

  • Tomcat 中的 RequestFacade, ResponseFacade, StandardSessionFacade

UML 和 代码

UML 图

代码

更多

设计模式学习专栏

参考资料

标签:void,模式,class,门面,设计模式,public
From: https://www.cnblogs.com/greyzeng/p/16879393.html

相关文章

  • 工厂模式案例解释
    1.1工厂模式​ 工厂模式一般分为简单工厂、工厂方法、抽象工厂,那么什么是简单工厂模式?工厂方法?抽象工厂模式?先看例子,再去看概念和UML图。举例:假设现在有一个项目要......
  • 14.严格模式
    严格模式JS运行代码的模式有两种:正常模式默认情况下代码都运行在正常模式下在正常模式,语法检查并不严格它的原则是,能不报错的地方尽量不报错这种处理方式导致代码......
  • [DPDK] 混杂模式
    [DPDK]混杂模式通常来讲,当一个网卡收到的包的目标MAC地址不是这个网卡的MAC地址时,网卡会无视这个包。如果想让网卡可以收到destMAC是任意地址的包,需要开启DPDK的混杂模......
  • 浅谈PHP设计模式的模板方法模式
    简介:模板方法模式,是行为型的设计模式。定义一个操作中的算法的骨架,而将一些步骤延迟到子类当中,使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。通......
  • 设计模式学习(九):装饰器模式
    设计模式学习(九):装饰器模式作者:Grey原文地址:博客园:设计模式学习(九):装饰器模式CSDN:设计模式学习(九):装饰器模式装饰器模式装饰器模式是一种结构型模式。顾名思义,就是对某......
  • 浅谈PHP设计模式的原型模式
    简介:原型模式,属于创建型模式的一种。主要针对对象进行克隆,把被克隆的对象称之为原型,原型模式称之为克隆模式也许更为贴切。用原型实例指定创建对象的种类,并且通过拷贝这......
  • 23.策略模式
    [实验任务一]:旅行方式的选择旅游的出行方式有乘坐飞机旅行、乘火车旅行和自行车游,不同的旅游方式有不同的实现过程,客户可以根据自己的需要选择一种合适的旅行方式。代码......
  • 【爱卡不卡】单身状态:开启归属感模式
    9月21日爱卡不卡昨天简书心理群开始了一个活动叫“爱卡不卡”,首次进去,还没熟知玩法,后来才知道,心理群组专门给了一组图片,图片中的三张图分别表现了三种不同的状态,当时看到......
  • 基于Spring的发布订阅模式 EventListener
    基于Spring的发布订阅模式在我们使用spring开发应用时,经常会碰到要去解耦合一些依赖调用,比如我们在做代码的发布流程中,需要去通知相关的测试,开发人员关注发布中的错误信息......
  • 设计模式-单例模式(最全总结)
    单例模式是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。饿汉式单例模式在类加载的时候就马上初始化了,此时还没到运行时只是将......