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

作者: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 图

代码

更多

设计模式学习专栏

参考资料

原文地址:http://www.cnblogs.com/greyzeng/p/16879393.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性