博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tomcat中设计模式-门面模式
阅读量:6955 次
发布时间:2019-06-27

本文共 1947 字,大约阅读时间需要 6 分钟。

开篇

 门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用,如下图所示(一图胜千言)。

门面模式例子

Tomcat中门面模式的例子

说明:

  • RequestFacade作为Request的门面,内部包含Request对象。

说明:

  • ResponseFacade作为Response的门面,内部包含Response对象。

说明:

  • StandardSessionFacade作为HttpSession的门面,内部包含HttpSession对象。

ApplicationContextFacade

说明:

  • ApplicationContextFacade作为ApplicationContext的门面,内部包含ApplicaitonContext对象。

例子源码

说明:

  • RequestFacade内部包含Request对象。
  • 对于Request对象的访问通过RequestFacade进行访问。
public class RequestFacade implements HttpServletRequest {    public RequestFacade(Request request) {        this.request = request;    }    protected Request request = null;    public Object getAttribute(String name) {        if (request == null) {            throw new IllegalStateException(                            sm.getString("requestFacade.nullRequest"));        }        return request.getAttribute(name);    }    public Enumeration
getAttributeNames() { if (request == null) { throw new IllegalStateException( sm.getString("requestFacade.nullRequest")); } if (Globals.IS_SECURITY_ENABLED){ return AccessController.doPrivileged( new GetAttributePrivilegedAction()); } else { return request.getAttributeNames(); } } public int getContentLength() { if (request == null) { throw new IllegalStateException( sm.getString("requestFacade.nullRequest")); } return request.getContentLength(); }}public class Request implements org.apache.catalina.servlet4preview.http.HttpServletRequest { private HttpServletRequest applicationRequest = null; protected RequestFacade facade = null; public HttpServletRequest getRequest() { if (facade == null) { facade = new RequestFacade(this); } if (applicationRequest == null) { applicationRequest = facade; } return applicationRequest; }}

参考文章

转载地址:http://ppjil.baihongyu.com/

你可能感兴趣的文章
SQL2012群集
查看>>
I/O重定向
查看>>
VIM配置文件
查看>>
国外免费网管软件推荐
查看>>
python while循环和双层循环
查看>>
ubuntu增加swap空间
查看>>
命令 cd
查看>>
数据结构C语言之多项式
查看>>
Linux 防火墙
查看>>
简练软考知识点整理-外指赶快先提投降
查看>>
32 MySQL主从
查看>>
HanLP-分类模块的分词器介绍
查看>>
Raid5磁盘阵列修复方法介绍
查看>>
技术解析系列 | PouchContainer 支持 LXCFS 实现高可靠容器隔离
查看>>
linux服务器之间设置ssh免密登录
查看>>
如何将M4A格式的音频转换为MP3格式?只需一步搞定
查看>>
APP项目资源对接平台有那几家
查看>>
微信自定义网页分享链接(可自定义链接 图片 内容介绍)
查看>>
Oracle管理表空间(三)--Oracle UNDO表空间
查看>>
Oracle使用rman进行表空间基于时间点的恢复
查看>>