设计模式-模板方法模式

概述

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


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

模板方法模式

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("回复术");
        }
    }
}

输出结果

回复术

相关推荐
吴声子夜歌1 小时前
ApacheCommons——commons-pool2(高性能通用对象池框架)
java·开发语言·apache
xcl09256 小时前
幼儿托育系统开发实战:从需求分析到上线全流程指南
java·大数据·需求分析
吴声子夜歌6 小时前
ApacheCommons——commons-cli(命令行参数解析)
java·开发语言·apache
小小猪的春天6 小时前
Java 手写第一个 MCP Server:Spring AI MCP 半小时跑通
java·人工智能·spring boot·ai编程
find1star6 小时前
LeetCode 141:环形链表
java·算法·leetcode·链表
今天AI了吗7 小时前
DeepSeek Harness 深度解析:从评测架构到实战落地
java·网络·数据库·人工智能·架构·java-ee
许彰午8 小时前
27-AuthService登录链路
java·低代码·架构
泡海椒8 小时前
JQuick-Curl 性能分析:并发场景下的性能表现与调优,第三方接口调用不只要快写也要稳跑
java·开发语言·okhttp
Rain的Java大神之路9 小时前
JavaWeb开发如何解决跨域问题
java·前端·后端·nginx·web安全·面试·运维开发
自动化监测Learner9 小时前
Navicat Premium 17 中文版安装教程(2026最新版)
java·linux·数据库