为什么要使用Facade 模式

        学习 使用设计模式也快两年了,中间也看了很多书,也看了很多 网上的帖子。现在,我也把自己的理解写出来和大家分享一下,有不对的地方请大家指正。废话少说,先从门面模式开始吧。

意图:为子系统中的一组接口提供一个一致的界面,该模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

这是GOF 定义的 意图,看了以后 可能还是很模糊,不知道到底该模式有什么好处,为什么要使用它。那好,我就试着解释一下。

为什么 使用?

      在我们写程序的过程中,客户程序经常会与一个子系统打交道。使用很多逻辑来处理,这样就导致了与子系统的紧耦合,这样很不好,为什么呢?第一,子系统一变化,客户端也跟着变 。第二,类的职责不够单一,本来客户程序只专注一件事情的,这时你又赋予它另外一些事。第三 ,代码重复 。如果别的地方也使用该子系统,那是不是 它也要写一堆与子系统打交道的代码呢?那怎么办呢?可能你已经想到了,把与子系统打交道的那部分代码抽取出来 ,专门形成一个类。呵呵 是的,英雄所见略同,这时 其实你已经再使用 facade模式了 。

另,可能有人看了说 加一个中间层 也解决不了 子系统变 ,别的地方也跟着变的问题呀。呵呵 是的,中间层是要跟着变化,但 你想 ,你此时只要 改变一个类就行了,只修改一个地方,而且这样也很好测试,工作量也并不大。

怎么样?你觉着 该模式好吗? 对你的设计有帮助吗?

转载于:https://www.cnblogs.com/wangok/archive/2008/12/15/1355359.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值