大话设计模式:外观模式

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

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

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

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

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

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

在未使用外观模式前:子系统A\B\C,对应

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

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

 

posted @ 2019-01-22 19:28  i孤独行者  阅读(206)  评论(0编辑  收藏  举报