设计模式:结构类之外观模式(Facade)意图和代码示例(送干货)

JeremyZJM 2018-12-21

导引

本头条号@牛旦教育IT课堂 已发表的结构类设计模式,请查阅:

设计模式:结构类之组合模式(Composite)应用场景和代码示例

设计模式:结构类之装饰模式(Decorator)意图场景和代码示例

设计模式:结构类之桥接模式(Bridge)应用场景和代码示例

{=重点=}:

放送两本中文版设计模式电子书籍,领取方式:

2.发送私信,发送内容为“设计模式”四个字,即可获得如下两本书:

《图解设计模式》与《Head First 设计模式》

模式意图

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

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

设计模式:结构类之外观模式(Facade)意图和代码示例(送干货)

应用场景

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

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

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

模式结构

设计模式:结构类之外观模式(Facade)意图和代码示例(送干货)

Facade代码模式

对外的统一接口

class Facade{
 public void operation(){
 subsystemClass1.operation();
 subsystemClass2.operation();
 }
}

subsystem Class 内部系统的实现类

class subsystemClass1{
 public static void operation(){
 System.out.println("subsystemClass1 operation()");
 }
}
class subsystemClass2{
 public static void operation(){
 System.out.println("subsystemClass2 operation()");
 }
}

代码结构

package com.nd.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();
 }
}

运行结果

subsystemClass1 operation()
subsystemClass2 operation()

总结

本问主要介绍了外观模式的目的和应用场景,以及代码的设计结构,偏重于理解其应用场景和意图以及模式,所以示例相对简单。

好了,都看到这了,记得关注本头条号@牛旦教育IT课堂发送私信设计模式 ,来领取两本设计模式的电子书吧——《图解设计模式》与《Head First 设计模式》

相关推荐