【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();
     }
 }

运行结果

相关推荐
大空大地202610 小时前
C#高级语法总结
开发语言·c#
geovindu14 小时前
go: Read-Write Lock Pattern
开发语言·后端·设计模式·golang·读写锁模式
周杰伦fans17 小时前
C# AutoCAD 二次开发极简入门:从环境搭建到高效实战
开发语言·c#
行走的陀螺仪17 小时前
[特殊字符] JavaScript 设计模式完全指南:从入门到精通(含20种模式)
开发语言·javascript·设计模式
小陶来咯17 小时前
AI Agent 设计模式:ReAct 深度解析
人工智能·react.js·设计模式
.NET修仙日记18 小时前
.NET EFCore批量插入性能优化实战:30秒 → 0.5秒
性能优化·c#·.net·.netcore·微软技术·efcore·踩坑实录
Esofar19 小时前
Dddify:给 ASP.NET Core 项目一套轻量、清晰、可落地的 DDD 基础设施
c#·ddd·asp.net core·cqrs·dddify·clean architecture
多加点辣也没关系19 小时前
设计模式-责任链模式
设计模式·责任链模式
多加点辣也没关系19 小时前
设计模式-命令模式
设计模式·命令模式
Coder_Shenshen20 小时前
【基于LibUA库的OPC UA服务器与客户端Demo——协议解析与Bug修复实践】
网络·c#·bug