Java设计模式——外观模式(门面模式)

设计模式 yan loading.. 0评论

动机

适配器模式是为了将一个类的接口转换成另一个符合用户期望的接口。现在想改变成一个新的接口,目的是简化接口,用一个统一的接口来访问子系统中的一群接口,这就是外观模式(门面模式)的动机,将一切复杂的都隐藏在背后,只显露出一个干净美好的外观。

定义

外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。

功能

外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。

比如:一个看电影的操作,需要关灯、放屏幕、开投影机、打开音响、播放DVD等很多步骤,但是为了让更容易,开发一个更高级的接口,其中包含以上全部内容,这样通过调用一个方法达到以上目的。

实现

利用组合的方式,组合需要的全部组件;定义一个统一接口按顺序调用相应步骤以达到最终功能的目的。

../_images/Facade.jpg

  • Facade: 外观角色
  • SubSystem:子系统角色

时序图:

../_images/seq_Facade.jpg

应用

门面设计模式在 Tomcat 中有多处使用,在 Request 和 Response 对象封装中、Standard Wrapper 到 ServletConfig 封装中、ApplicationContext 到 ServletContext 封装中等都用到了这种设计模式。

实现源代码:https://github.com/yangengzhe/coding-guide_i3geek/tree/master/docs/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F

关注<爱上极客>公众号,定期推送精彩内容!

喜欢 (1)

如未说明则本站原创,转载请注明出处:爱上极客 » Java设计模式——外观模式(门面模式)


0
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址