Facade(外观)模式学习笔记


意图

facade模式为复杂子系统定义了一些统一的接口,使得这一子系统更加容易使用。

一、外观模式的适用性

适用性:

1.当你要为一个复杂子系统提供一个简单接口且不想给不需要定制子系统的用户带来使用上的困难时,facade可以提供一个简单的缺省接口,这对大多数不需要定制子系统的用户来说已经足够。

2.若客户程序与抽象类的实现部分存在很大的依赖性,想将子系统与客户代码以及其它子系统分离。

3.当你需要建立一个层次结构的子系统时,若子系统之间是相互依赖的,可以让它们仅通过facade进行通信,从而简化了它们之间的依赖关系。

二、实际例子与实现

1.场景介绍

C语言的编译器为例:
这里根据编译的过程,将编译系统分为四个子系统,分别为Pretreatment (预处理)、Compile(编译)、Assembly(汇编)、Link(链接):
若按照一般方法构建整个编译系统,倘若用户根本不关心各个编译子系统的细节,而且客户不想因为底层子系统的改变而改变自己的代码,这里就可以使用facade模式作为中间层,给客户使用。
倘若客户关心子系统的相关细节,绕过facade层即可。

2.例子类图

1

3.C++代码实现

2

3
4
555555
666

777777

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值