外观模式的作用:为多个复杂的子系统提供一个一致的接口,使这些子系统更加容易被访问,且不会暴露过多的底层实现细节。
Tomcat 中,catalina.jar 中的 RequestFacade 和 ResponseFacade 两个类就使用了外观模式。
servlet-api 中定义了 HttpServlet 抽象类,类中的定义了处理 http get、post、delete... 等请求,返回处理结果,对应需要实现方法 doGet、doPost、doDelete...
这些方法有两个共同的参数:HttpServletRequest、HttpServletResponse
public abstract class HttpServlet extends GenericServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
String protocol = req.getProtocol();
String msg = lStrings.getString("http.method_get_not_supported");
if (protocol.endsWith("1.1")) {
resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
} else {
resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
}
}
...
}
HttpServlet 的方法中的 HttpServletRequest、HttpServletResponse 这两个参数实际传入的是 RequestFacade 和 ResponseFacade。
ConstXiong 备案号:苏ICP备16009629号-3