常用开源框架中设计模式使用分析- 门面模式(Facade Pattern)

七、 门面模式(Facade Pattern)

7.1 介绍

门面模式是一种结构性模式,它通过新增一个门面类对外暴露系统提供的一部分功能,或者屏蔽了内部系统的复杂性,对外部仅仅暴露一个简单的接口,或者通过调用不同的服务对外提供统一的接口,让使用者对这些内部服务透明化。

7.2 模板引擎Velocity中门面模式使用

Velocity里面的VelocityEngine和Velocity类都是RuntimeInstance类的门面,后者提供了模板渲染的所有功能,前两者则是内部维护RuntimeInstance的实例,具体工作还是委托给RuntimeInstance来实现。 关于Veloctiy可以参考:http://www.jianshu.com/p/da3bf09d0178

image.png

如图 RuntimeInstance提供了Velocity引擎的所用功能,VelocityEngine内部直接引用了RuntimeInstance的一个实例,VelocityEngine对外暴露的服务都是委托RuntimeInstance实现,并且每次new一个VelocityEngine内部都会有RuntimeInstance的一个实例被创建。而Velocity类调用了单例模式类RuntimeSingleton里面的方法,RuntimeSingleton又是RuntimeInstance的一个单例模式。

7.3 使用场景

  • 当需要对外屏蔽一个系统的复杂性时候可以考虑使用门面模式对外提供简单可读性高的接口类
  • 当需要对外部暴露系统一部分权限的接口时候可以考虑使用门面模式减少系统权限。
  • 当系统需要调用不同服务汇总后在对外提供服务时候可以考虑使用门面模式对外屏蔽细节,之暴露一个接口。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏中国Android研究院

Flutter开发环境搭建

对于上文Android Studio✗部分,只需要在AndroidStudio中的Plugin中安装Flutter插件即可。 对于'Some android l...

13430
来自专栏从零开始学自动化测试

python测试开发django-1.开始hello world!

当你想走上测试开发之路,用python开发出一个web页面的时候,需要找一个支持python语言的web框架。django框架有丰富的文档和学习资料,也是非常成...

22430
来自专栏pangguoming

Nodejs开发框架Express3.0开发手记–从零开始

转载请注明出处: http://blog.fens.me/nodejs-express3/ 程序代码已经上传到github有需要的同学,自行下载。 http...

428120
来自专栏游戏杂谈

Operation could not be completed. (WebKitErrorDomain error 101.)

ios中加载网页,会报如标题所示的错误“Operation could not be completed. (WebKitErrorDomain error ...

20910
来自专栏JAVA技术站

Jmeter的压测使用

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。...

11010
来自专栏Python

linux每日命令(27):chmod命令

chmod命令用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含...

12510
来自专栏码生

证书报错解决方法:Code=3000 "未找到应用程序的“aps-environment”的授权字符串"

1:如果你的项目中已经添加了 KeychainAccessGroups.plist 文件,在此文件中新增一对键值

61830
来自专栏用户2442861的专栏

IntelliJ IDEA配置Spark使用

第二步下载插件 首先启动intelliJ IDEA:在命令行终端中,进入$IDEA_HOME/bin目录,输入./idea.sh进行启动,进入如下界面,然后...

60710
来自专栏木子昭的博客

靠谱的 关闭Windows10自动更新第一步:获取本地网络属性修改权限第二步:将本地网络设置为按流量计费

自从Windows10发布后, 如何关闭Windows10的自动更新, 就是一个长盛不衰的话题, 后来微软看可爱的用户们讨论的这么开心, 就直接把关闭自动更新...

41490
来自专栏向治洪

cocos2d 在windows环境下搭建

详细搭建步骤如下: 1、Android 开发环境搭建 Android开发环境搭建不是重点,相信看此文章的很多人都已经搭建成功,这里随便概述性的说说。 1、下载 ...

23970

扫码关注云+社区

领取腾讯云代金券