Android 设计模式入门到精通之十:外观模式(Facade Pattern,门面模式)

版权声明:本文为博主原创文章,未经允许不得转载,如有问题,欢迎指正,谢谢! https://blog.csdn.net/cbk861110/article/details/88212664

设计模式项目源码请移步:https://github.com/caobaokang419/WeatherApp(欢迎Github Fork&Star,代码设计模式&框架设计实现不妥之处,请帮忙指正),谢谢!

外观模式(Facade Pattern,门面模式)

1. 概念

Facade Pattern: Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use.

外观模式:为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 

2. 应用场景

a. 为复杂的模块或子系统提供外界访问的模块;
b. 子系统相互独立;
c. 在层析结构中,可以使用外观模式定义系统的每一层的入口。

3. 优点

a. 简化了复杂的接口,客户端只需与外观交流,而无需知道具体的子系统组件;符合 迪米特法则(最少知识原则)。
b. 还将客户从组件的子系统中解耦,例如若组件升级,只需要修改外观代码即可,无需修改客户端代码。

4. 缺点

暂无。

5. 原理介绍

简单来说,该模式就是把一些复杂的流程封装成一个接口供给外部用户更简单的使用。这个模式中,设计到3个角色。

a. 门面角色:外观模式的核心。它被客户角色调用,它熟悉子系统的功能。内部根据客户角色的需求预定了几种功能的组合。

b. 子系统角色:实现了子系统的功能。它对客户角色和Facade时未知的。它内部可以有系统内的相互交互,也可以由供外界调用的接口。

c. 客户角色:通过调用Facede来完成要实现的功能。

6. 代码实践:(TBD)

猜你喜欢

转载自blog.csdn.net/cbk861110/article/details/88212664
今日推荐