大话设计模式:外观模式

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

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

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

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

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

 

转载于:https://www.cnblogs.com/dc-earl/p/10305673.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值