设计模式:结构类之外观模式(Facade)意图和代码示例(送干货)
导引
本头条号@牛旦教育IT课堂 已发表的结构类设计模式,请查阅:
设计模式:结构类之组合模式(Composite)应用场景和代码示例
设计模式:结构类之装饰模式(Decorator)意图场景和代码示例
设计模式:结构类之桥接模式(Bridge)应用场景和代码示例
{=重点=}:
放送两本中文版设计模式电子书籍,领取方式:
2.发送私信,发送内容为“设计模式”四个字,即可获得如下两本书:
《图解设计模式》与《Head First 设计模式》
模式意图
外观模式主要是为了为一组接口提供一个一致的界面。从而使得复杂的子系统与用户端分离解耦。
有点类似家庭常用的一键开关,只要按一个键,台灯卧室客厅的灯都亮了。虽然他们各有各自的开关,但是对外用一个来控制。
应用场景
1 为复杂系统 提供简单的接口。
2 客户程序与抽象类的实现部分分离。
3 构建层次系统时,用作入口。
模式结构
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 设计模式》。
相关推荐
姜海强 2020-08-01
conganguo 2020-06-09
虚拟主机 2020-05-01
lweiyue 2020-05-05
TingBen 2020-05-05
Freeman00 2020-05-01
howema 2020-02-21
codercheng 2020-02-15
姜海强 2020-01-14
codercheng 2020-01-01
yw00yw 2019-12-14
姜海强 2019-12-08
swimmer000 2019-11-09
Ingram 2019-11-05
Ingram 2019-11-03
TingBen 2014-10-25
chengrile 2014-05-26
gougouzhang 2019-10-04