Unity---游戏设计模式(7)之模板方法模式




概述参考请看 参考博客

1、模板方法模式原型

每次吃饭都包含点单、吃东西、买单几个步骤,点单和买单大同小异,最大的区别在于吃什么?
在模板方法模式中,把点单和买单的实现放在父类中。不同吃东西的具体实现则放在子类中。

模板方法模式原型UML图

模板方法模式原型代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 模板方法模式
/// </summary>
public class TemplateMethodMode : MonoBehaviour
{
    private void Start()
    {
        People northPeople = new NorthPeople();
        northPeople.Eat();

        People southPeople = new SouthPeople();
        southPeople.Eat();
    }
}

public abstract class People
{
    public void Eat()
    {
        OrderFood();
        EatFood();
        PayBill();
    }
    
    private void OrderFood()
    {
        Debug.Log("点餐");
    }

    /// <summary>
    /// 吃饭时,不同地区的人吃不同的东西
    /// </summary>
    protected abstract void EatFood();

    private void PayBill()
    {
        Debug.Log("结账");
    }
}

public class NorthPeople : People
{
    protected override void EatFood()
    {
        Debug.Log("我要吃面条!!!");
    }
}
public class SouthPeople : People
{
    protected override void EatFood()
    {
        Debug.Log("我要吃米饭!!!");
    }
}

模板方法模式简单又常用,理解了原型例子后,基本就能写的出来了。

2、模板方法模式优缺点

优点

  1. 符合开闭原则。
  2. 提高了代码复用率。
  3. 提高了扩展性

缺点

  1. 增加了理解难度
原文地址:https://www.cnblogs.com/Fflyqaq/p/11692554.html