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

运行结果

相关推荐
猫不吃咸鱼5 分钟前
Unity中攻击检测敌人的多种方法
游戏·unity·c#·游戏引擎
自己的九又四分之三站台1 小时前
基于OpenCV扶正扫描文件
人工智能·opencv·计算机视觉·c#
wanghowie1 小时前
01.08 Java基础篇|设计模式深度解析
java·开发语言·设计模式
FuckPatience1 小时前
C# 获取属性自定义特性报错:System.NotSupportedException:“泛型类型无效。
c#
秋月的私语2 小时前
Windows Forms 多语言开发指南
windows·c#·form
张3蜂2 小时前
runtimes\win-AnyCPU\native\DlibDotNetNativeDnnAgeClassification.dll”,原因是找不到该文件
c#
syt_10132 小时前
设计模式之-中介者模式
设计模式·中介者模式
aini_lovee2 小时前
基于C# 和 NModbus 库的 Modbus TCP 通信示例源码
开发语言·tcp/ip·c#
明洞日记2 小时前
【设计模式手册023】外观模式 - 如何简化复杂系统
java·设计模式·外观模式