zoukankan      html  css  js  c++  java
  • 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. 增加了理解难度
  • 相关阅读:
    3、使用DB first创建上下文并生成数据库表
    2、新建解决方案,新建项目,配置引用
    1、Visual Studio 2019下载及安装
    7、权限管理数据库
    6、添加Common类
    四年下学期古诗
    三年级必背古诗
    用PHPCMS V9完成wap网站四步法
    Thinkphp笔记---查询方式
    ThinkPHP快捷查询
  • 原文地址:https://www.cnblogs.com/Fflyqaq/p/11692554.html
Copyright © 2011-2022 走看看