• 设计模式(10) 外观模式(FACADE)


    问题聚焦:
        设计一个系统时,比较常见的做法是将它划分为若干个小的系统,互相协作,组成一个大的系统。
        那么,在设计这些小系统时,需要注意一些什么呢?
        外观模式为什么可以让子系统更加容易的使用呢?(最小化子系统之间的通信和相互依赖关系,即降低耦合度)
    意图:
        为子系统中的一组接口提供一个一致的界面。Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
    动机:
        将一个系统划分为若干个子系统有利于降低系统的复杂性。
        一个常见的设计目标是使子系统间的通信和相互依赖关系达到最小。
        达到该目标的途径之一就是引入一个外观对象,它为子系统中较一般的设施提供了一个单一而简单的界面。
        其思想如下图所示:
        Demo:以编译器子系统的设计为例,说明外观模式的思想:
        子系统类划分:Scanner, Parser, ProgramNode, BytecodeStream, ProgramNodeBuilder
        要求:对普通用户提供一个高层的,单一而简单的编译子系统接口
                  对高级专业的用户提供底层功能,可以直接访问具体的子系统类。
        设计:
       
        Compiler类(关键),其职责为两点:    
        1)为用户屏蔽子系统,提供一个高层的简单的使用接口;
        2)不完全隐藏实现编译功能的那些子系统类,使得少数懂的如何使用底层功能的人可以调用这些功能。

    适用性:
    在遇到以下情况使用Facade模式:
    • 为一个复杂子系统提供一个简单接口。
    • 客户程序与抽象类的实现部分之间存在很大的依赖性。
    • 当你需要构件一个层次结构的子系统时,使用facade模式定义子系统中每层的入口点。如果子系统之间是相互依赖的,可以让它们仅通过facade进行通讯,从而简化了它们之间的依赖关系。

    结构:

        
  • 相关阅读:
    了解基本的bash shell命令
    实验七:Xen环境下cirrOS的安装配置
    实验六:通过grub程序引导本地磁盘内核启动系统(busybox)
    实验五:Xen环境下多虚拟机的桥接配置
    实验四:xl命令的常见子命令以及操作
    实验三:xen环境下的第一个虚拟机的安装
    练习1
    Linux网站运维工程师基础大纲
    实验二:Linux下Xen环境的安装
    实验一:通过bridge-utils工具创建网桥并实现网络连接
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/6428158.html
Copyright © 2020-2023  润新知