Python语言设计模式:外观模式详解
更多内容请见: python3案例和总结-专栏介绍和目录
文章目录
-
- 一、外观模式概述
-
- 1.1 什么是外观模式?
- 1.2 为什么需要外观模式?解决什么问题?
- 1.3 外观模式的结构
- 1.4 外观模式的优缺点
- 1.5 外观模式的应用场景
- 1.6 外观模式 和 适配器模式对比
- 二、用python实现外观模式
-
- 2.1 Python代码实现:家庭影院
- 2.2 执行结果
- 2.3 代码分析
一、外观模式概述
1.1 什么是外观模式?
外观模式是一种非常常用且结构简单的结构型设计模式。它的核心思想是:为一个复杂的子系统提供一个简化的、统一的接口。这个模式隐藏了子系统的复杂性,只向外界暴露一个干净、易用的高层接口。
可以把它想象成一家大公司的“前台”。当客户需要办理业务时,他不需要知道具体该找哪个部门的哪个人,只需要去前台,前台会负责协调内部所有部门来完成客户的请求。这个“前台”就是外观模式中的“外观”。
1.2 为什么需要外观模式?解决什么问题?
在软件开发中,我们经常会遇到一些非常复杂的系统或第三方库。比如:
- 一个视频转换库,可能需要你先初始化解码器,再设置音频参数,然后设置视频参数,接着开始解码,最后再编码保存……步骤繁多。
- 一个复杂的家庭影院系统,包含投影仪、功放、DVD播放器、屏幕、音响等多个设备。想看个电影,需要依次打开屏幕、投影仪、功放,设置功放输入源,播放DVD,调节音量……操作非常繁琐。
外观模式就是为了解决这类问题而生的。它通过引入一个外观类(Facade),将这些复杂的交互流程封装起来,提供一个简单的接口,比如watch_movie()。
1.3 外观模式的结构
外观模式通常包含两个核心角色:
- 外观类(Fa
