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

运行结果

相关推荐
程序设计实验室1 小时前
上位机开发之假装有设备,使用 C# 模拟串口设备
c#·上位机
CodeCraft Studio11 小时前
3D文档控件Aspose.3D实用教程:使用 C# 构建 OBJ 到 U3D 转换器
开发语言·3d·c#·3d渲染·aspose·3d文件格式转换·3d sdk
唐青枫12 小时前
ValueTask 实战指南:解锁 .NET 异步编程的性能秘密
c#·.net
chenglin01612 小时前
C#_gRPC
开发语言·c#
★YUI★16 小时前
学习制作记录(选项UI以及存档系统)8.24
学习·游戏·ui·unity·c#
liulilittle17 小时前
.NET反射与IL反编译核心技术
开发语言·数据库·c#·.net·反射·反编译·il
月巴月巴白勺合鸟月半17 小时前
Teams Bot机器人实时语音识别的多引擎的处理
机器人·c#
hixiong12319 小时前
C# 编写一个XmlToDota的转换工具
开发语言·人工智能·yolo·c#
用户37215742613520 小时前
C# 高保真 Word 转 HTML 实战指南
c#
gloomyfish20 小时前
【零代码】OpenCV C# 快速开发框架演示
人工智能·opencv·c#