设计模式-模板方法模式

概述

模板方法模式是一种行为型的设计模式,主要组成部分是抽象类子类,这个模式在实际开发中是非常常用的,在框架设计中是很重要的,将通用的抽象进行抽象,然后在具体的类的时候继承抽象方法,实现对应的功能即可。模板如下


例子:现在有很多的游戏角色,有攻击,血量,防御等属性,主要是技能不同,请抽象实现。

模板方法模式

cs 复制代码
internal class Program
{
    private static void Main(string[] args)
    {
        Priest priest = new Priest();
        priest.Skill();
    }
    public abstract class GameCharacter//抽象的基类
    {
        public abstract string Name { get; }//名字
        public abstract uint HP { get; }//血量
        public abstract uint Attack { get; }//攻击
        public abstract uint Defense { get; }//防御
        public abstract int CriticalStrike { get; }//暴击
        public abstract void Skill();//技能
    }
    public class Soldier : GameCharacter//战士
    {
        public override string Name => "战士";

        public override uint HP => 100;

        public override uint Attack => 20;

        public override uint Defense => 15;

        public override int CriticalStrike => 24;

        public override void Skill()
        {
            Console.WriteLine("防御强化");
        }
    }
    public class Master : GameCharacter//法师
    {
        public override string Name => "法师";

        public override uint HP => 92;

        public override uint Attack => 10;

        public override uint Defense => 12;

        public override int CriticalStrike => 33;

        public override void Skill()
        {
            Console.WriteLine("火球术");
        }
    }
    public class Priest : GameCharacter//牧师
    {
        public override string Name => "牧师";

        public override uint HP => 60;

        public override uint Attack => 9;

        public override uint Defense => 7;

        public override int CriticalStrike => 12;

        public override void Skill()
        {
            Console.WriteLine("回复术");
        }
    }
}

输出结果

回复术

相关推荐
phltxy10 分钟前
常见排序的学习
java·学习·排序算法
Catfood_Eason27 分钟前
通用代码自用
java·服务器·前端
zwxu_38 分钟前
基于vscode连接服务器实现远程开发
java·开发语言·vscode·golang
q__y__L39 分钟前
C# WaitHandle类的几个有用的函数
java·开发语言·c#
七七软件开发1 小时前
二手交易 app 系统架构分析
java·python·小程序·系统架构·php
都叫我大帅哥1 小时前
RabbitMQ生产者发布确认:从入门到精通,幽默解析与实战指南
java·rabbitmq
用户6120414922131 小时前
C语言做的汽车线路模拟查询系统
c语言·后端·设计模式
二级小助手2 小时前
计算机二级java选择题真题【内附解析】
java·计算机二级·全国计算机二级·二级java·java二级·java二级选择题·全国计算机java二级
鲨鱼辣椒_TUT2 小时前
Obsidian结合CI/CD实现自动发布
java·ci/cd·github
海狸老先生7 小时前
Apache Tomcat样例目录session操纵漏洞解读
java·网络安全·tomcat