设计模式---外观模式

来源:互联网 发布:考研网络培训班 编辑:程序博客网 时间:2024/06/04 01:13

定义

外观模式提供了一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用。

类图

这里写图片描述

理解

外观模式一共有两个角色:外观角色、子系统角色。其中外观角色是用来包装子系统中一个或多个复杂的类。
虽然外观角色包装了子系统,但是子系统仍然可以直接调用。

家里的空气开关其实就是一个外观模式,空气开关是外观角色,被空气开关调用的电灯、风扇、空调就是各个子系统。

代码

3个子系统:

public class Light {    public void lightOn(){        Log.e("ZXK","Light");    }}public class Fan {    public void fanOn(){        Log.e("ZXK","Fan");    }}public class AirConditioner {    public void airConditionerOn(){        Log.e("ZXK","AirConditioner");    }}

外观角色:

public class AirSwitch {    Light light;    Fan fan;    AirConditioner airConditioner;    public AirSwitch(Light light, Fan fan, AirConditioner airConditioner) {        this.light = light;        this.fan = fan;        this.airConditioner = airConditioner;    }    public void allOn(){        light.lightOn();        fan.fanOn();        airConditioner.airConditionerOn();    }}

测试:

Light light = new Light();Fan fan = new Fan();AirConditioner airConditioner = new AirConditioner();AirSwitch airSwitch = new AirSwitch(light,fan,airConditioner);airSwitch.allOn();

这里写图片描述

总结

  • 外观模式将一群对象“包装”起来以简化其接口。
  • 外观模式允许我们让客户和子系统之间避免紧耦合。
  • 外观模式比较容易理解,但是重点是外观模式的意图是要提供一个简单的接口,好让子系统易于使用。