設計模式—模板模式(DesignPattern_TemplateMethod)
摘錄自:設計模式與遊戲完美開發
十年磨一劍,作者將設計模式理論巧妙地融入到實踐中,以一個遊戲的完整實現呈現設計模式的應用及經驗的傳承 《軒轅劍》之父——蔡明巨集、資深遊戲製作人——李佳澤、Product Evangelist at Unity Technologies——Kelvin Lo、信仁軟體設計創辦人—— 賴信仁、資深3D遊戲美術——劉明愷 聯合推薦全書採用了整合式的專案教學,即以一個遊戲的範例來應用23種設計模式的實現貫穿全書,讓讀者學習到整個遊戲開發的全過程和作者想要傳承的經驗,並以淺顯易懂的比喻來解析難以理解的設計模式,讓想深入瞭解此領域的讀者更加容易上手。
工程GitHub
模板方法模式:模板方法模式準備一個抽象類,將部分邏輯以具體方法以及具體構造子的形式實現,然後宣告一些抽象方法來迫使子類實現剩餘的邏輯。不同的子類可以以不同的方式實現這些抽象方法,從而對剩餘的邏輯有不同的實現。先制定一個頂級邏輯框架,而將邏輯的細節留給具體的子類去實現。
using UnityEngine;
using System.Collections;
namespace DesignPattern_TemplateMethod
{
// 演算法相關執行順序
public abstract class AbstractClass
{
public void TemplateMethod()
{
PrimitiveOperation1();
PrimitiveOperation2();
}
protected abstract void PrimitiveOperation1();
protected abstract void PrimitiveOperation2();
}
// 演算法A執行順序
public class ConcreteClassA : AbstractClass
{
protected override void PrimitiveOperation1()
{
Debug.Log("ConcreteClassA.PrimitiveOperation1");
}
protected override void PrimitiveOperation2()
{
Debug.Log("ConcreteClassA.PrimitiveOperation2");
}
}
// 演算法B執行順序
public class ConcreteClassB : AbstractClass
{
protected override void PrimitiveOperation1()
{
Debug.Log("ConcreteClassB.PrimitiveOperation1");
}
protected override void PrimitiveOperation2()
{
Debug.Log("ConcreteClassB.PrimitiveOperation2");
}
}
}
using UnityEngine;
using System.Collections;
using DesignPattern_TemplateMethod;
public class TemplateMethodTest : MonoBehaviour
{
void Start()
{
UnitTest();
}
void UnitTest()
{
AbstractClass theClass = new ConcreteClassA();
theClass.TemplateMethod();
theClass = new ConcreteClassB();
theClass.TemplateMethod();
}
}
相關文章
- 設計模式-模板模式設計模式
- 設計模式——模板模式設計模式
- Java設計模式——模板設計模式Java設計模式
- 設計模式-模板方法模式設計模式
- 設計模式 ——— 模板方法模式設計模式
- 模板設計模式設計模式
- Java設計模式-模板方法模式Java設計模式
- 設計模式之【模板方法模式】設計模式
- js設計模式--模板方法模式JS設計模式
- 設計模式之模板方法模式設計模式
- 設計模式之----Java模板模式設計模式Java
- 設計模式-模板方法模式.md設計模式
- 設計模式(五)——模板方法模式設計模式
- PHP設計模式之模板方法模式PHP設計模式
- 簡說設計模式——模板方法模式設計模式
- python設計模式-模板方法模式Python設計模式
- 設計模式實戰-模板方法模式設計模式
- 極簡設計模式-模板方法模式設計模式
- 設計模式學習-物件模板模式設計模式物件
- 【大話設計模式】—— 模板方法模式設計模式
- 我學設計模式 之 模板模式設計模式
- Java設計模式之模板模式(Template )Java設計模式
- 模板方法設計模式設計模式
- java模板設計模式Java設計模式
- 【設計模式】--模板方法設計模式
- 23種設計模式(四)- 模板方法設計模式設計模式
- Java描述設計模式(19):模板方法模式Java設計模式
- 設計模式快速學習(六)模板模式設計模式
- C#設計模式(14)——模板方法模式C#設計模式
- 13.java設計模式之模板模式Java設計模式
- 《Head First 設計模式》:模板方法模式設計模式
- Java設計模式之(十三)——模板方法模式Java設計模式
- javascript設計模式 之 8 模板方法模式JavaScript設計模式
- Android原始碼設計模式-模板模式Android原始碼設計模式
- 我的Java設計模式-模板方法模式Java設計模式
- 23種設計模式之--模板方法模式設計模式
- 設計模式之模板方法設計模式
- Java設計模式之模板方法模式和建造者模式Java設計模式