`
iflytek_wjzhu
  • 浏览: 39017 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android日记之2012/02/09——浅谈设计模式facade

阅读更多
      最近在看些设计模式facade的文章,也做个总结吧,如果说,写的不好,希望大家指正~~~谢谢~~~

      其实,感觉设计模式的东西比较难写,理论性比较强,就这么干巴巴的写理论,自己写的没意思,看的人也觉得没意思,但是要一下子写个Demo来具体说明一下,有感觉有点无从下手的感觉,也嫌写着麻烦。。。。。。就谈谈自己的理解吧。

      在说facade前,让我们先想想这样的场景。我们一般去医院看病的话,一般按照这样的步骤:1、挂号;2、去找医生;3、如果说病情不明的,还要去验个血;4、再回到医生那让医生对症下药;5、付款、取药。

      其实,我们整件事情做下来,无非是想知道自己得了什么病,该买什么药来治病,之间的找哪位医生啊,去验血啊,都不是我们想要关心的。那我们能不能这样,在医院里放个小机器人(可采血),我们滴一两滴血给小机器人,让它帮我们去挂号、验血、找医生、拿药过来,我们就只要在大厅里坐等小机器人过来,付款,拿药。这样下来,我们同样可以知道自己得了什么病,该买什么药来治病。但我们和医院的各个部门的接触就少了(程序中就是减少耦合),那这个小机器人,就是facade。

      Facade的理论介绍是这么写的:为子系统提供了一个更高层次、更简单的接口,从而降低了子系统的复杂度和依赖,这使得子系统更易于使用和管理。降低了子系统和客户的耦合度。

      对此,我们可以用一些项目来说明。最简单的,程序的前后台。用户通过访问程序的前台来获得数据,但是用户可以不用知道前台是如何和后台交互的。也就是说,用户得到了自己想要的数据,和程序至交互了一次。这就是运用了facade设计模式。如果不用呢?那用户就是把后台需要的方法一个一个调用过来,无疑就是增加了耦合度。而面向对象中就提到了高内聚、低耦合(这里就不扩展了,要不然就太庞大了。。。。。)。

      难道说facade设计模式就如此简单?非也,这只是举些大家都熟悉的例子而已。其实,难就难在我们如何在代码中把这种思想运用进去。我们可以把一个类看作是客户,它需要使用另外几个类来处理一个数据,那这几个类,我们就可以为它们写个接口,来作为他们的前台,那这个客户类就只需要与这个前台交互,就能得到所需要的数据。
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics