设计模式解析学习笔记3——Facade(外观)模式

介绍

《设计模式》一书中对Facade模式是这样描述的:

为子系统中的一组接口提供一个统一接口。Facade模式定义了一个更高层次的接口,使子系统更加容易使用。

通过Facade模式,我们可以更简单的去使用一个复杂的系统。我们可以封装出更简单、更容易使用、更符合我们需求的系统。

实践

假如有一个Client对象必须处理Database、Model、Element对象。Client必须首先通过Database对象打开数据库,获取Model对象,然后再查询Model对象,获取Element对象,最后请求Element对象的信息。

这时候我们可以创建一个Facade来简化这个过程,具体如下图所示:
使用Facade之前
180750334726019.png

使用Facade之后
180750470352910.png

Facade还可以用来隐藏或者封装系统,以下两种情况适合使用Facade进行封装:

  • 跟踪系统的使用情况:强制所有对系统的访问都必须经过Facade,这样就可以很容易的监视系统的使用情况。
  • 更换系统:将原系统作为Facade类的一个私有成员,这样新系统只需要符合Facade的接口就可以很容易的进行系统的更换。
代码实例
//TODO
小结

Facade模式适用于以下情况:

  • 不需要使用一个复杂系统的所有功能,而且可以创建一个新的类,包含访问系统的所有规则。
  • 希望封装或者隐藏原系统。
  • 希望使用原系统的功能,而且还希望增加一些新功能。
  • 编写新类的成本小于所有人学会使用或者未来维护原系统上所需的成本。

转载于:https://www.cnblogs.com/starsli/p/4738265.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值