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

运行结果

相关推荐
快乐点吧9 分钟前
【Word】批注一键导出:VBA 宏
开发语言·c#·word
Dm_dotnet22 分钟前
为Avalonia应用添加图标
c#
Rabbb1 小时前
C# 切割数组的Linq扩展方法 Period,PeriodBy
后端·c#
找了一圈尾巴2 小时前
设计模式(结构性)-代理模式
设计模式·代理模式
阿ฅ( ̳• ε • ̳)ฅ2 小时前
C#窗体应用程序连接数据库
开发语言·数据库·c#
渊渟岳2 小时前
掌握设计模式--模板方法模式
设计模式
勘察加熊人6 小时前
wpf+c#路径迷宫鼠标绘制
开发语言·c#·wpf
小黄人软件7 小时前
C# ini文件全自动界面配置:打开界面时读ini配置到界面各控件,界面上的控件根据ini文件内容自动生成,点保存时把界面各控件的值写到ini里。
开发语言·c#
gc_229913 小时前
C#测试Excel开源组件ExcelDataReader
c#·excel·exceldatareader
勘察加熊人15 小时前
c#使用forms实现helloworld和login登录
开发语言·c#