关于facade模式

zhongyj2004 2010-03-09 09:07:36
tomcat里的StandardSession类实现了HttpSession接口。
定义了另外一个类StandardSessionFacade,把HttpSession作为一个成员变量,使用了facade模式。
为什么要多这么一步,让StandardSession只把HttpSession接口中函数设置为public不就可以了吗。
...全文
176 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
tomcat 中关于 HttpServletRequest 和 HttpSession 最终的实现,有很多的委托层次,逐层嵌套,看似每个方法只有几行代码,但是却能完成复杂的功能,这也是面向对象的特点。这些代码上的设计是很值得我们去学习、研究的。
  • 打赏
  • 举报
回复
StandardSessionFacade 是 tomcat 中 HttpSession 对外服务的门面,只通过一个类对外进行服务,而其内部只是采用委托的方式调用其他对象的方法,这种就是门面。

门面一般会带给我们这样一个好处,让系统对外只有一个接口,这个接口起着核心要道的作用。客户端只需要跟这个门面打交道就可以了,不需要了解更多的信息。
applerockhool 2010-03-09
  • 打赏
  • 举报
回复
支持楼上的~~


-
chinesealbert 2010-03-09
  • 打赏
  • 举报
回复
如果让StandardSession只把HttpSession接口中函数设置为public当然可以
但是HttpSession太复杂,提供的接口对不需要详细调用HttpSession的用户太耗费时间去学习这个类
因此使用StandardSessionFacade来承接对HttpSession的调用,并提供一个简单的接口,和乐而不为?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧