zoukankan      html  css  js  c++  java
  • 大话设计模式:外观模式

    外观模式:新增一个类,这个类当作客户端和真正系统之间的桥梁,客户端通过类实习那对系统的调用。

                      是最小知道原则的具体实现,如果两个类必须通信,要借助第三方类。

                      相当于客户端和真正系统的通信员,负责他们之间交互。

    A是未使用外观模式前,客户端和子系统交互

    B是使用外观模式后,外观类当作客户端和子系统的桥梁,负责他们之间通信。

    现在模拟喝茶动作,我们可以自己泡茶和去茶馆两个不同的选择,自己泡茶相当与没有使用外观模式,,去茶馆facade就相当于服务员使用到外观模式。

    在未使用外观模式前:子系统ABC,对应

    public class SubSystemA
    {
        public void MethodA()
        {
            System.out.println("准备茶具");
        }
    }
    
    public class SubSystemB
    {
        public void MethodB()
        {
            System.out.println("准备开水");
        }
    }
    
    public class SubSystemC
    {
        public void MethodC()
        {
            System.out.println("准备泡茶");
        }
    }
    public class Main {
        public static void main(String[] args) {
            SubSystemA a = new SubSystemA();
            SubSystemB b = new SubSystemB();
            SubSystemC c = new SubSystemC();
            a.MethodA();
            b.MethodB();
            c.MethodC();
        }
    }

    我们看到,这样挺简单的,但忽略一个问题,当我们有多个客户端多个客户端都会有这段代码,但如果子系统方法改变怎么办,所有系统都需要改,这不符合我们的要求,使用外观模式就可以很好的解决这个问题。

  • 相关阅读:
    windows多线程(三) 原子操作
    windows多线程(二) 等待线程返回
    windows多线程(一) 创建线程 CreateThread
    Js 中的原始值和引用值
    Linux 文件系统介绍
    Linux命令(二十) 显示系统内存状态 free
    Linux命令(十九) 查看系统负载 uptime
    Linux命令(十八) 压缩或解压缩文件和目录 gzip gunzip
    git使用
    python 中调用shell命令
  • 原文地址:https://www.cnblogs.com/dc-earl/p/10305673.html
Copyright © 2011-2022 走看看