【Unity3D与23种设计模式】模板方法模式(Template Method)
2017-07-20 15:01
651 查看
GoF中定义:
“在一个操作方法中定义算法的流程,其中某些步骤由子类完成。
模板方法模式让子类在不变更原有算法流程的情况下,还能够重新定义其中的步骤”
每一次武器攻击目标时,都要按逻辑执行:
1.开火、枪口特效
2.子弹特效
3.武器特效
4.通知敌方被击中
而每一种武器(如:枪,炮)都要执行一遍相同顺序的逻辑
模板方法模式就是着手解决这个问题的
1.定义一个算法的流程,即是很明确地定义算法的每一个步骤,并写在父类的方法中,而每一个步骤都可以是一个方法的调用
2.某些步骤由子类完成,不同子类的特性计算在此实现
文章整理自书籍《设计模式与游戏完美开发》 菜升达 著
“在一个操作方法中定义算法的流程,其中某些步骤由子类完成。
模板方法模式让子类在不变更原有算法流程的情况下,还能够重新定义其中的步骤”
每一次武器攻击目标时,都要按逻辑执行:
1.开火、枪口特效
2.子弹特效
3.武器特效
4.通知敌方被击中
而每一种武器(如:枪,炮)都要执行一遍相同顺序的逻辑
模板方法模式就是着手解决这个问题的
1.定义一个算法的流程,即是很明确地定义算法的每一个步骤,并写在父类的方法中,而每一个步骤都可以是一个方法的调用
2.某些步骤由子类完成,不同子类的特性计算在此实现
//TemplateMethod.cs public abstract class AbstractClass { public void TemplateMethod() { PrimitiveOperation1(); PrimitiveOperation2(); } protected abstract void PrimitiveOperation1(); protected abstract void PrimitiveOperation2(); } public class ConcreteClassA : AbstractClass { protected override void PrimitiveOperation1() { Debug.Log("ConcreteClassA.PrimitiveOperation1"); } protected override void PrimitiveOperation2() { Debug.Log("ConcreteClassA.PrimitiveOperation2"); } } public class ConcreteClassB : AbstractClass { protected override void PrimitiveOperation1() { Debug.Log("ConcreteClassB.PrimitiveOperation1"); } protected override void PrimitiveOperation2() { Debug.Log("ConcreteClassB.PrimitiveOperation2"); } }
//TemplateMethodTest.CS void UnitTest() { AbstractClass theClass = new ConcreteClassA(); theClass.TemplateMethod(); theClass = new ConcreteClassB(); theClass.TemplateMethod(); }
//测试结果 ConcreteClassA.PrimitiveOperation1 ConcreteClassA.PrimitiveOperation2 ConcreteClassB.PrimitiveOperation1 ConcreteClassB.PrimitiveOperation2
文章整理自书籍《设计模式与游戏完美开发》 菜升达 著
相关文章推荐
- Java开发中的23种设计模式之十四:模板方法模式(Template Method)
- 23种设计模式之模板方法(Template Method)
- java23种常用设计模式之模板方法模式(Template Method)
- 【行为型模式】模板方法模式(template method)之23种java设计模式
- Java开发中的23种设计模式详解----模板方法模式(Template Method)
- 23种设计模式之模板方法(Template Method)
- 23种设计模式之模板方法模式(template method)
- Java设计模式—模板方法(Template Method)
- C#设计模式(14)——模板方法模式(Template Method)
- Java设计模式透析之 —— 模板方法(Template Method)
- 设计模式——行为型之使用模板方法(Template Method Pattern)模式尽量减少重复相似的代码段(一)
- Java设计模式透析之 —— 模板方法(Template Method)
- 设计模式之Template Method模式(模板方法模式)
- 白话设计模式--行为型模式--Template Method模式(模板方法模式)
- 设计模式----Template Method(模板方法)
- 设计模式学习笔记(十六)——Template Method模板方法模式
- Template Method-模板方法模式《Head First 设计模式》
- 设计模式之Template Method (模板方法)
- 设计模式C++学习笔记之九(Template Method模板方法模式)
- 设计模式----模板方法模式(Template Method)