功能目标:
-
使用 Facade 模式简化外部对 Servlet API 的访问,隐藏内部复杂的实现细节,提供更简洁的接口供外部调用。
实现内容:
-
Facade 模式:Facade 是一种设计模式,用于封装复杂的子系统。通过封装,Facade 提供了一个统一的接口,使得外部系统在不需要了解内部实现的情况下,依然能够轻松访问子系统的功能。
-
在 Servlet 容器中,我们可以通过 Facade 包装如
HttpServletRequest
和HttpServletResponse
等对象,限制对内部结构的直接访问,简化对外接口的复杂度。 -
RequestFacade 和 ResponseFacade 类作为具体实现,它们封装了
HttpServletRequest
和HttpServletResponse
,隐藏了请求和响应的复杂细节,提供标准的请求和响应接口。
示例功能:
-
创建一个
RequestFacade
类,封装实际的请求对象,屏蔽不必要的内部细节,简化外部对请求的访问。
12.1 Facade 模式设计
Facade 模式的关键是将复杂的子系统操作封装在一个简单的接口中。对于 Web 容器而言,我们需要简化客户端访问 HttpServletRequest
和 HttpServletResponse
的复杂性,同时隐藏底层实现的细节。
我们将 RequestFacade
和 ResponseFacade
提供给用户,代替直接使用 HttpServletRequest
和 HttpServletResponse
。