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

运行结果

相关推荐
武藤一雄26 分钟前
WPF深度解析Behavior
windows·c#·.net·wpf·.netcore
蓝天星空32 分钟前
C#中for循环和foreach循环的区别
开发语言·c#
BUTCHER538 分钟前
二十三种设计模式
设计模式
大数据新鸟1 小时前
设计模式详解-状态模式
ui·设计模式·状态模式
han_1 小时前
JavaScript设计模式(七):迭代器模式实现与应用
前端·javascript·设计模式
Maybe_ch2 小时前
WPF的STA线程模型、APM与TAP:从线程约束到现代异步
c#·.net·wpf
我是唐青枫3 小时前
C#.NET Consul + Steeltoe 深入解析:服务注册发现、健康检查与微服务接入
c#·.net·consul
波波0073 小时前
用微软AutoGen+ 通义千问实现 AI 成语接龙
人工智能·microsoft·c#
csdn_aspnet13 小时前
C# 求n边凸多边形的对角线数量(Find number of diagonals in n sided convex polygon)
开发语言·算法·c#
大数据新鸟16 小时前
设计模式详解——观察者模式
观察者模式·设计模式