1.4模板方法模式
1.概念:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变算法的结构即可重新定义该算法的某些特定步骤。
2.模板方法的特点:
当代码环境中,子类们的行为方法存在重复,通过抽取封装不变的行为到父类,从而去除子类重复代码,代码因重复利用变得简洁。

模板方法非常简单,其核心是利用了继承机制,AbstractClass是一个抽象模板,包括基本方法和模板方法。其中基本方法是一个已经实现的虚方法,模板方法是具体的方法,他们构成了顶级的逻辑骨架。而逻辑的具体操作延迟到具体的子类ConcreteClass来实现。
代码示例:
public class TestPaper
{
//即方法骨架,一般是具体方法,可以一个或多个,实现对基本方法的调用。
protected void TestQuestion1()
{
Console.WriteLine("1+1=?");
Console.WriteLine("答案:"+Answer1());
}
//由子类实现,并在模板方法中被调用
public virtual string Answer1() { return ""; }
public virtual string Answer2() { return ""; }
……
}
public class StudentATestPaper:TestPaper
{
protected override string Answer1() {return "A"; }
protected override string Answer2() {return "B"; }
}
客户端:
StudentATestPaper stuA=new StudentATestPaper();
stuA.TestQuestion1();
stuA.TestQuestion2();
学习所得:
编码中,同样的代码出现过两次,就需要适当的对设计产生怀疑。
+
(^_^)打个赏喝个咖啡(^_^)

【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂