• 大话设计模式:外观模式


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

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

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

    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();
        }
    }

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

  • 相关阅读:
    ThinkPHP5跨控制器调用
    ThinkPHP5显示数据库字段内容
    使用ThinkPHP5连接数据库
    详解shell中>/dev/null 2>&1到底是什么
    算法
    设计模式简介
    python面试题
    python-基础介绍
    python第二天-linux权限管理
    Python全栈考试-部分试题(精选)
  • 原文地址:https://www.cnblogs.com/dc-earl/p/10305673.html
Copyright © 2020-2023  润新知