zoukankan      html  css  js  c++  java
  • 七个结构模式之外观模式(Facade Pattern)

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


    结构图

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

    注意:

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

    优点:

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

    适用情况:

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

    实例:
    FacadePattern

  • 相关阅读:
    [JSOI2007][BZOJ1031] 字符加密Cipher|后缀数组
    leetcode Flatten Binary Tree to Linked List
    leetcode Pascal's Triangle
    leetcode Triangle
    leetcode Valid Palindrome
    leetcode Word Ladder
    leetcode Longest Consecutive Sequence
    leetcode Sum Root to Leaf Numbers
    leetcode Clone Graph
    leetcode Evaluate Reverse Polish Notation
  • 原文地址:https://www.cnblogs.com/zhangfei614/p/6034013.html
Copyright © 2011-2022 走看看