【C#设计模式(23)——模板方法模式(Template Method Pattern)】

前言

复制代码
在抽象类中封装算法的结构,具体的实现步骤由子类定义,从而达到不改变算法结构的,允许子类重定义方法内容。

代码

csharp 复制代码
public abstract class Teamplate
{
    public void TeamplateMethod()
    {
        Step1();
        Step2();
        Step3();
    }
    protected abstract void Step1();
    protected abstract void Step2();
    protected abstract void Step3();
}
public class ConcreteTemplate : Teamplate
{
    protected override void Step1()
    {
        Console.WriteLine("Step1");
    }

    protected override void Step2()
    {
        Console.WriteLine("Step2");
    }

    protected override void Step3()
    {
        Console.WriteLine("Step3");
    }
}

 /*
  * 行为型模式:Behavioral Pattern
  * 模板方法模式:Template Method Pattern
  */
 internal class Program
 {
     static void Main(string[] args)
     {
         Teamplate teamplate = new ConcreteTemplate();
         teamplate.TeamplateMethod();
         Console.ReadLine();
     }
 }

运行结果

相关推荐
刀法如飞2 分钟前
从零手搓一个类Spring框架,彻底搞懂Spring核心原理
java·设计模式·架构设计
阿蒙Amon30 分钟前
C#每日面试题-值传递和引用传递的区别
java·面试·c#
一条闲鱼_mytube1 小时前
智能体设计模式全景总结:21个模式快速串联指南
网络·设计模式
老蒋每日coding1 小时前
AI Agent 设计模式系列(十五)—— A2A Agent 间通信模式
人工智能·设计模式
yj爆裂鼓手1 小时前
unity对象池
unity·c#
Leo July2 小时前
【Java】Java设计模式实战指南:从原理到框架应用
java·开发语言·设计模式
Traced back3 小时前
Windows窗体应用 + SQL Server 自动清理功能方案:按数量与按日期双模式
数据库·windows·c#·.net
阿蒙Amon3 小时前
C#每日面试题-索引器和迭代器的区别
开发语言·windows·c#
老蒋每日coding3 小时前
AI Agent 设计模式系列(十四)—— 知识检索(RAG)模式
人工智能·设计模式·langchain
1314lay_10074 小时前
.Net 7.0 Core 文件导入接口的实现
visualstudio·c#·.net