Facade(外观)模式

  设计模式精解读书笔记,学习书籍的同时,按着自己的理解编写代码和类图。有误之处请网友指出,thanks。

一、        Facade(外观)模式

为了子系统中的一组接口提供一个一致的界面,Façade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

Façade模式:关键特征

意图

希望简化现有系统的使用方法。你需要定义自己的接口

问题

只需要使用一个复杂系统的一个子集。或者,需要用一种特殊的方式与系统交互。

解决方案

Façade向客户展现使用现有系统的一个新的接口

参与者和协作者

向客户展现一个定制的接口,让客户更容易地使用现有系统

效果

Façade模式简化了对所需子系统的使用。但是,由于Façade并不完整,因此某些功能对于客户是不可用的

实现

Ø 定义一个(或一组)新的类来提供所需的接口

Ø 让新的类使用现有的系统

 

图1.1

 

Façade模式:实例1

意图

希望简化现有系统的使用方法。你需要定义自己的接口

问题

如图1.1,original_system有多个函数,client只需要用到其中的funA

解决方案

Façade向client展现使用original_system的一个新的接口fun

参与者和协作者

向客户展现一个定制的接口,让客户更容易地使用现有系统

效果

Façade模式简化了对所需子系统的使用。但是,由于Façade并不完整,因此funB、funC对于client是不可用的

实现

Ø 定义一个新的类Facade来提供所需的接口

Ø 让新的类Facade使用现有的系统original_system

如图1.2

 

 

1.2

Façade模式:实例2

意图

希望简化现有系统的使用方法。你需要定义自己的接口

问题

如图1.3,有多个类,客户(main函数)只需要使用顺序使用他们

解决方案

Façade向客户展现使用多个类的一个新的接口fun

参与者和协作者

向客户展现一个定制的接口,让客户更容易地使用现有系统

效果

Façade模式简化了对所需子系统的使用。

实现

Ø  定义一个新的类Facade来提供所需的接口

Ø  让新的类Facade使用现有的多个类

如图1.4


1.3

1.4

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值