最近在看些设计模式facade的文章,也做个总结吧,如果说,写的不好,希望大家指正~~~谢谢~~~
其实,感觉设计模式的东西比较难写,理论性比较强,就这么干巴巴的写理论,自己写的没意思,看的人也觉得没意思,但是要一下子写个Demo来具体说明一下,有感觉有点无从下手的感觉,也嫌写着麻烦。。。。。。就谈谈自己的理解吧。
在说facade前,让我们先想想这样的场景。我们一般去医院看病的话,一般按照这样的步骤:1、挂号;2、去找医生;3、如果说病情不明的,还要去验个血;4、再回到医生那让医生对症下药;5、付款、取药。
其实,我们整件事情做下来,无非是想知道自己得了什么病,该买什么药来治病,之间的找哪位医生啊,去验血啊,都不是我们想要关心的。那我们能不能这样,在医院里放个小机器人(可采血),我们滴一两滴血给小机器人,让它帮我们去挂号、验血、找医生、拿药过来,我们就只要在大厅里坐等小机器人过来,付款,拿药。这样下来,我们同样可以知道自己得了什么病,该买什么药来治病。但我们和医院的各个部门的接触就少了(程序中就是减少耦合),那这个小机器人,就是facade。
Facade的理论介绍是这么写的:为子系统提供了一个更高层次、更简单的接口,从而降低了子系统的复杂度和依赖,这使得子系统更易于使用和管理。降低了子系统和客户的耦合度。
对此,我们可以用一些项目来说明。最简单的,程序的前后台。用户通过访问程序的前台来获得数据,但是用户可以不用知道前台是如何和后台交互的。也就是说,用户得到了自己想要的数据,和程序至交互了一次。这就是运用了facade设计模式。如果不用呢?那用户就是把后台需要的方法一个一个调用过来,无疑就是增加了耦合度。而面向对象中就提到了高内聚、低耦合(这里就不扩展了,要不然就太庞大了。。。。。)。
难道说facade设计模式就如此简单?非也,这只是举些大家都熟悉的例子而已。其实,难就难在我们如何在代码中把这种思想运用进去。我们可以把一个类看作是客户,它需要使用另外几个类来处理一个数据,那这几个类,我们就可以为它们写个接口,来作为他们的前台,那这个客户类就只需要与这个前台交互,就能得到所需要的数据。
分享到:
相关推荐
(1)UML样例源文件(8个样例文件) uml/uml.mdl //01.UML快速入门 uml/usecase.mdl //02.用例图 uml/class.mdl //03.静态图——类图、对象图、包图 uml/component.mdl //04.实现图——组件图与部署图 uml/...
(1)UML样例源文件(8个样例文件) uml/uml.mdl //01.UML快速入门 uml/usecase.mdl //02.用例图 uml/class.mdl //03.静态图——类图、对象图、包图 uml/component.mdl //04.实现图——组件图与部署图 uml/...
uml/usecase.mdl //02.用例图 uml/class.mdl //03.静态图——类图、对象图、包图 uml/component.mdl //04.实现图——组件图与部署图 uml/statechart.mdl //05.行为图——状态图 uml/activity.mdl //06....
(1)UML样例源文件(8个样例文件) uml/uml.mdl //01.UML快速入门 uml/usecase.mdl //02.用例图 uml/class.mdl //03.静态图——类图、对象图、包图 uml/component.mdl //04.实现图——组件图与部署图 uml/...
(1)UML样例源文件(8个样例文件) uml/uml.mdl //01.UML快速入门 uml/usecase.mdl //02.用例图 uml/class.mdl //03.静态图——类图、对象图、包图 uml/component.mdl //04.实现图——组件图与部署图 uml/...
uml/usecase.mdl //02.用例图 uml/class.mdl //03.静态图——类图、对象图、包图 uml/component.mdl //04.实现图——组件图与部署图 uml/statechart.mdl //05.行为图——状态图 uml/activity.mdl //06....
uml/usecase.mdl //02.用例图 uml/class.mdl //03.静态图——类图、对象图、包图 uml/component.mdl //04.实现图——组件图与部署图 uml/statechart.mdl //05.行为图——状态图 uml/activity.mdl //06....
(1)UML样例源文件(8个样例文件) uml/uml.mdl //01.UML快速入门 uml/usecase.mdl //02.用例图 uml/class.mdl //03.静态图——类图、对象图、包图 uml/component.mdl //04.实现图——组件图与部署图 uml/...
(1)UML样例源文件(8个样例文件) uml/uml.mdl //01.UML快速入门 uml/usecase.mdl //02.用例图 uml/class.mdl //03.静态图——类图、对象图、包图 uml/component.mdl //04.实现图——组件图与部署图 uml/...
uml/usecase.mdl //02.用例图 uml/class.mdl //03.静态图——类图、对象图、包图 uml/component.mdl //04.实现图——组件图与部署图 uml/statechart.mdl //05.行为图——状态图 uml/activity.mdl //06....
设计模式之门面模式(Facade模式),介绍门面模式,实际例子分析,代码讲解等
设计模式1,FACADE模式,Adapter facade Adapter singleton proxy
facade设计模式 里面有设计模式的实现
设计模式之外观模式 facade 采用JAVA实现,请结合文档看,欢迎讨论。。
eclipse工程文件 包含代码 有助理解 门面(Facade)模式 <br>外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。 <br>医院的例子 <br>用一个例子进行说明,如果把医院...
正面 Facade的实现——软件设计模式
4.5FacadePattern(外观模式) 134 4.5.1定义 134 4.5.2现实中的实例——顾客服务员 135 4.5.3C#实例——抵押申请审核 136 4.5.4Java实例——冲茶 139 4.5.5优势和缺陷 143 4.5.6应用情景 143 4.6...
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要资源分。敬请期待。 这是第11节:结构型...
C#面向对象设计模式纵横谈(11):Facade 外观模式(结构型模式) (Level 300)