模板方法模式
模板方法模式:在一个操作方法中定义算法的流程,其中某些步骤由子类完成。模板方法模式让子类在不变更原有算法流程的情况下,还能够重新定义其中的步骤。
模板方法定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。
需求&模板方法实现
公司准备研发一个MOBA游戏,派你去制作技能系统。
众所周知,法术能否释放涉及一系列的检查,以下是策划罗列的一些点:
- 先判断CD是否已冷却完毕
- 再判断魔法值是否足够
- 再判断攻击目标是否在技能范围内(非指向性技能无需判断)
- 再判断攻击对象是否还活着(非指向性技能无需判断)
判断结束后,播放技能遵循一定的顺序。
- 先主角PlayAction
- 再播放音效
- 再播放特效
那么首先,定义一个Skill类,再按照技能大类,我们可以划分为指向性技能PointToSkill和ZoneSkill范围技能。
抽象技能类,Execute方法定义了一个执行模板,C