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

运行结果

相关推荐
y***54886 小时前
PHP框架设计模式
设计模式
自由的好好干活9 小时前
使用Qoder编写ztdaq的C#跨平台示例总结
linux·windows·c#·qoder
口袋物联9 小时前
设计模式之适配器模式在 C 语言中的应用(含 Linux 内核实例)
c语言·设计模式·适配器模式
MobotStone9 小时前
大数据:我们是否在犯一个大错误?
设计模式·架构
FuckPatience10 小时前
C# 实现元素索引由1开始的链表
开发语言·链表·c#
7***n7511 小时前
前端设计模式详解
前端·设计模式·状态模式
兵bing11 小时前
设计模式-装饰器模式
设计模式·装饰器模式
雨中飘荡的记忆13 小时前
深入理解设计模式之适配器模式
java·设计模式
雨中飘荡的记忆13 小时前
深入理解设计模式之装饰者模式
java·设计模式
我是唐青枫14 小时前
C#.NET 范围与索引(Range、Index)完全解析:语法、用法与最佳实践
c#·.net