【设计模式】—— 外观模式Facade

  模式意图

  外观模式主要是为了为一组接口提供一个一致的界面。从而使得复杂的子系统与用户端分离解耦。

  有点类似家庭常用的一键开关,只要按一个键,台灯卧室客厅的灯都亮了。虽然他们各有各自的开关,但是对外用一个来控制。

【设计模式】—— 外观模式Facade

  应用场景

  1 为复杂系统 提供简单的接口。

  2 客户程序与抽象类的实现部分分离。

  3 构建层次系统时,用作入口。

  模式结构

【设计模式】—— 外观模式Facade

  Facade 对外的统一接口

【设计模式】—— 外观模式Facade
class Facade{
    public void operation(){
        subsystemClass1.operation();
        subsystemClass2.operation();
    }
}
【设计模式】—— 外观模式Facade

  subsystem Class 内部系统的实现类

【设计模式】—— 外观模式Facade
class subsystemClass1{
    public static void operation(){
        System.out.println("subsystemClass1 operation()");
    }
}
class subsystemClass2{
    public static void operation(){
        System.out.println("subsystemClass2 operation()");
    }
}
【设计模式】—— 外观模式Facade

  代码结构

【设计模式】—— 外观模式Facade
package com.xingoo.facade;
class Facade{
    public void operation(){
        subsystemClass1.operation();
        subsystemClass2.operation();
    }
}

class subsystemClass1{
    public static void operation(){
        System.out.println("subsystemClass1 operation()");
    }
}
class subsystemClass2{
    public static void operation(){
        System.out.println("subsystemClass2 operation()");
    }
}
public class Client {
    public static void main(String[] args) {
        Facade facade = new Facade();
        facade.operation();
    }
}
【设计模式】—— 外观模式Facade

  运行结果

subsystemClass1 operation()
subsystemClass2 operation()
本文转自博客园xingoo的博客,原文链接:【设计模式】—— 外观模式Facade,如需转载请自行联系原博主。