设计模式学习(十):门面模式
设计模式学习(十):门面模式
作者:Grey
原文地址:
门面模式#
门面模式是一种结构型模式。
门面模式为子系统提供一组统一的接口,定义一组高层接口让子系统更易用。
假设建造一个房子需要有如下三个步骤:
第一步,和泥
第二步,搬砖
第三步,砌墙
如果每次我们制造一个房子都要分别调用这三个方法,就会比较麻烦一些,我们可以设置一个门面,这个门面封装了这三个步骤,后续建造房子,只需要调用这个门面即可。
和泥
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 图如下
门面模式应用#
- Linux 的系统调用和 Shell 脚本
Linux 系统调用函数就可以看作一种“门面”。它是 Linux 操作系统暴露给开发者的一组“特殊”的编程接口,它封装了底层更基础的 Linux 内核调用。再比如, Linux 的 Shell 命令,实际上也可以看作一种门面模式的应用。它继续封装系统调用,提供更加友好、简单的命令,让我们可以直接通过执行命令来跟操作系统交互。
-
Spring JDBC 中的
JdbcUtils
类,包装了 JDBC 相关的所有操作。 -
Tomcat 中的
RequestFacade
,ResponseFacade
,StandardSessionFacade
。
UML 和 代码#
更多#
参考资料#
作者:GreyZeng
出处:https://www.cnblogs.com/greyzeng/p/16879393.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
你可以在这里自定义其他内容
本文来自博客园,作者:Grey Zeng,转载请注明原文链接:https://www.cnblogs.com/greyzeng/p/16879393.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程