学习 使用设计模式也快两年了,中间也看了很多书,也看了很多 网上的帖子。现在,我也把自己的理解写出来和大家分享一下,有不对的地方请大家指正。废话少说,先从门面模式开始吧。
意图:为子系统中的一组接口提供一个一致的界面,该模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
这是GOF 定义的 意图,看了以后 可能还是很模糊,不知道到底该模式有什么好处,为什么要使用它。那好,我就试着解释一下。
为什么 使用?
在我们写程序的过程中,客户程序经常会与一个子系统打交道。使用很多逻辑来处理,这样就导致了与子系统的紧耦合,这样很不好,为什么呢?第一,子系统一变化,客户端也跟着变 。第二,类的职责不够单一,本来客户程序只专注一件事情的,这时你又赋予它另外一些事。第三 ,代码重复 。如果别的地方也使用该子系统,那是不是 它也要写一堆与子系统打交道的代码呢?那怎么办呢?可能你已经想到了,把与子系统打交道的那部分代码抽取出来 ,专门形成一个类。呵呵 是的,英雄所见略同,这时 其实你已经再使用 facade模式了 。
另,可能有人看了说 加一个中间层 也解决不了 子系统变 ,别的地方也跟着变的问题呀。呵呵 是的,中间层是要跟着变化,但 你想 ,你此时只要 改变一个类就行了,只修改一个地方,而且这样也很好测试,工作量也并不大。
怎么样?你觉着 该模式好吗? 对你的设计有帮助吗?