`
crazyox
  • 浏览: 183054 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

设计模式之Facade

阅读更多

意图: 为了子系统中的一组接口提供一个一致的界面(访问方式),Facade模式定义了一个高层接口,这个接口使得这一子系统更加 容易使用.

场景:  我们(客户端)需要访问一个子系统,但是子系统中的功能很多,而我们只需要使用一部分功能,这时就可以使用Facade模式,创建一个或一组新的类(外观)提供需要的功能.

使用Facade前:

 使用Facade后:

 

 

效果:  客户端直接和外观交互,降低了对子系统使用的复杂度, 降低了客户端与子系统间的耦合度,而且可以在外观中很容易监控对子系统的使用情况.但是,未被Facade中包含的子系统中的其他功能对于客户端是不可见的.

实现:  定义一个外观(一个或一组新的类)来提供所需要的接口,让外观使用子系统.

应用:  两元书店, 后台提供了许多功能包括入库,查询,更新,上下线等后台操作,而前台只需要一部分功能,而且对于WAP前端和WWW前端使用的功能不一致,这样就可以对WAP和WWW前端各自提供外观.

java与模式书中的例子:

医院有很多功能: 

门诊,挂号,取药,划价,CT,验血

病人需要其中的几个功能,于是可以咨询Facade---- 接待员(当然,这是理想情况).

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics