设计模式有很多中,但可以把它们归为三类:
学习Python中有不明白推荐加入交流群
号:516107834
群里有志同道合的小伙伴,互帮互助,
群里有不错的学习教程!
创建型设计模式
结构型设计模式
行为型设计模式
而 “门面模式” (也称外观模式)也是众多设计模式的一种,它属于结构型设计模式。
什么是门面模式(Facade)?
为子系统中的一组接口提供一个一致的界面
Facade 模式定义了一个高层接口,这个接口使得这子系统更加容易使用。
什么时候需要使用门面模式?
在以下情况下可以考虑使用外观模式:
门面模式解决了什么问题?
为什么选择锐雯?
因为锐雯的技能很适合讲解门面模式。
大家都知道 IG.theshy 的成名英雄不是剑魔而是锐雯。
他在打职业之前是韩服第一锐雯,操作简直 666。
锐雯基本操作是什么?
光速 QA 的连招顺序为:A-Q-地板-A-Q-地板-A-Q-地板-A, 一套伤害打下来是很猛的,今天我们就以锐雯的光速 QA 作为例子,来看看设计模式中的门面模式是怎么回事。
我可以选择其它英雄么?
当然可以,你可以选择你擅长的英雄来理解门面模式,这并不影响你收割知识。
光速 QA 的过程
都听过光速 QA,但是你了解它的过程么?A Q A Q A Q A 就完事了?
1.首先平 A 一下敌人; 2.以最快的速度接 Q 技能; 3.接着飞速点击一下地板; 4.最后神速的将鼠标移动到回你要攻击的目标上。
上面是光速 QA 的第一段操作,它需要你操作 4 次,而光速 QA 总共有 3 段,意味着你要将上面的操作循环 3 次,总共就是 12 次操作。
这也就是为什么,只要练成了锐雯的光速 QA ,就能够在短时间内打出爆发性的伤害,让对面的上单心慌慌...
用 Python 代码表示光速 QA
说明一下,代码是用来表示过程以及比喻技能的(杠精请绕道),介绍一下,英雄联盟的英雄技能按键分布在 Q-W-E-R 四个键,所以游戏中大家将各个技能的名称简述为 Q 技能、W 技能、E 技能、R 技能,这里我们还需要键盘和鼠标的操作。
Python 代码表示键盘技能
Python 代码表示鼠标操作
这样就构成了最基本的技能和鼠标基础操作。
接下来我们使用锐雯的第一段 QA 操作:
第一段 QA 操作
运行这段代码,我们就可以实现锐雯的第一段 QA 操作:
如果需要 3 段 QA 操作,那么就将上方的代码复制三份。
光速 QA 快捷键与门面模式
门面模式的光速 QA 代码
将图形转化为实际的代码,首先保持原来的键盘和鼠标操作不变:
接着通过定义一个 Facade 类,将原来的键鼠操作组成一套连招:
再编写一个召唤师,让召唤师对 Facade (可以将 Facade 理解为英雄联盟的快捷键)进行操作:
为了更贴近真实操作,我们还可以为召唤师增加走位功能。
至此,门面模式所需的类和代码都编写完了,我们来看看召唤师如何使用:
以上就完成了 3 段 QA 操作,运行一下代码,看看会发生什么:
是不是完成了所有的连招操作,形成了光速 QA 呢(杠精请绕路)?
写法对比
回顾一下常规写法,有键盘、鼠标,召唤师释放 1 段 QA 操作需要共 4 步,它们之间的关系如下图所示:
那么 3 段 QA 就需要 3 组
用 UML 图表示他们的关系:
网友评论