七个结构模式之外观模式(Facade Pattern)

定义:
为子系统的一组接口提供一个统一的入口,从而降低系统之间的耦合度,提高子系统的可用性。外观模式又称为门面模式,是迪米特法则的一个体现,主要目的就是降低耦合。


结构图

  • Facade:抽象外观类,子系统提供的一组接口的抽象定义。客户端仅针对该抽象层进行编程,不需要知道子系统直接的相互作用关系。
  • ConcreteFacade:具体外观类,抽象门面类的具体实现,其中调用子系统的各个类的业务方法,完成接口中定义的业务需求。
  • Subsystems:子系统类,这些类之间存在各种相互依赖关系,并对外提供业务处理功能。

注意:

  • 外观模式并不给系统增加任何新的功能,它仅仅是简化客户端和子系统之间的调用关系。
  • 如果利用抽象外观类,在选择具体抽象外观类的时候可以采用XML加反射的方法来动态地配置。

优点:

  • 对客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,使子系统使用更加容易
  • 子系统的修改对其它子系统不会产生影响,同样也不会影响客户端调用,如果在业务方法没有变的前提下。

适用情况:

  • 当要为访问的一系列复杂的子系统提供一个简单入口时,可以采用外观模式。
  • 客户端和多个子系统之间存在很大的依赖性,引入外观类可以将子系统独立出来,提高子系统的可移植性。
  • 在层次化机构中,用外观模式可以定义每个层次的入口,层与层之间不产联系,而是通过外观建立联系,降低层之间的耦合度。

实例:
FacadePattern

posted on 2016-11-05 21:03  云破天蓝  阅读(253)  评论(0编辑  收藏  举报

导航