IBM开发者上面有淘宝架构师写的文章《Tomcat 系统架构与设计模式》(http://www.ibm.com/developerworks/cn/java/j-lo-tomcat2/)。结合这2 篇文章的分析,对tomcat对设计模式的使用对原代码进行了分析。
首先看下“门面模式”,首先看下门面模式的介绍:[size=10.5pt; font-family: 宋体;]一个大系统会有很多小系统,每个小系统之间又会有通信。为了保护每个小系统内部的数据,可以为每个小系统设计一个门面,把系统间通信的数据封装起来,提供给其他系统调用。这样的做法,简化层于层的依赖关系,提高子系统的独立性和可移植性。在阎宏的《设计与模式》中比将门面模式比做,医院的每一个科室,有挂号,门诊,从现实社会的角度对门面模式进行了阐述。
接下来结合源代码,来看下门面模式在tomcat中的应用。
org.apache.catalina.core.StandardWrapperFacade封装了获取Servlet的信息,对外提供信息。用户就不用访问StandardWrapper来获取信息。结合上面的类图,看下StandardWrapperFacade的代码就会很明白门面模式在此处的运用了。
private ServletConfig config = null;//此处私有,用于保护子系统信息
//构造器,初始化
public StandardWrapperFacade(StandardWrapper config) {
super();
this.config = (ServletConfig) config;
}
//以下是所有获取信息的方法,是从StandardWrapper 类中获取信息
public String getServletName() {
return config.getServletName();
}
public ServletContext getServletContext() {
if (context == null) {
context = config.getServletContext();
if ((context != null) && (context instanceof ApplicationContext))
context = ((ApplicationContext) context).getFacade();
}
return (context);
}
public String getInitParameter(String name) {
return config.getInitParameter(name);
}
public Enumeration getInitParameterNames() {
return config.getInitParameterNames();
}
同时,我们也可以看到其他代码也用到了门面模式。tomcat源代码中有很好的命名习惯,就是对于门面模式使用的类都用Facade(表面,假象,外观)。其中对于Request和Response都有相应的RequestFacade和ResponseFacade。
分享到:
相关推荐
tomcat 源码分析系列文档 http深入分析,tomcat中类的加载,tomcat的启动,tomcat的容器思想,
介绍了tomcat的架构,从源码分析tomcat组成!
} }process的功能也很简单,1:如果catalina.home和catalina.base两个属性没有设置就设置一下,2:参数正确的话就调用execut
1.2 Connector的配置对Connector的配置位于conf/server.xml文件中 1.2.1 BIO HTTP/1.1 Connector配置
这些资源文档是本人在网上搜索了好多关于tomcat源码讲解的文章之后,觉得对tomcat6源码讲解不错的文章的整理,文档有别人分析,本人只是整理;
tomcat的基础脚本分析 tomcat的源码启动分析 tomcat的web应用启动分析 tomcat的socket分析 tomcat的cocket与容器对接时序分析
Tomcat源码剖析 : 整体架构 层层分析 源码解析 架构分析 (Http服务器功能:Socket通信(TCP/IP)、解析Http报文 Servlet容器功能:有很多Servlet(自带系统级Servlet+自定义Servlet),Servlet处理具体的业务逻辑...
how_tomcat_works,对tomcat进行了剖析
主要是讲解TOMCAT的系统框架, 以及启动流程。
对 NIO 模式,请求的流程描述的很详细。值得去仔细的研究。
TOMCAT 源码分析
tomcat 源码分析,学习tomcat源码导入eslipse以及tomcat框架设计
TOMCAT 源码 分析 how tomcat works 读后总结
TOMCAT源码分析(启动框架).pdf
tomcat源码6.0下载,了解tomcat架构的最佳方式,