模板方法模式
1、个人理解,我们在考试的时候,会每人发一份卷子,这个卷子都是一样的,也就成了模板,但是这个卷子不一样的地方是什么呢,就是我们写在上面的答案,那么我们现在将这个卷子当成一模板写成一个类,但是这个类中答案的部分又不能被写死了,那么我们就将这个写答案的地方写成一个抽象方法,让继承他的子类去实现这个抽象方法。这样即不会破坏模板中的其它部分,只让继承他的类改需要改的地方。
定义:一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
1、定义抽象类,也就是模板
1 abstract class AbstractClass 2 { 3 //一些抽像的方法,必须在子类中去实现的 4 public abstract void OperationOne(); 5 public abstract void OperationTwo(); 6 7 //模板方法,在这个方法中有些是不变的模板 8 public void TemplateMethod() 9 { 10 Console.WriteLine("我是不变的部分,每一个继续我的子类都要有这一部分内容"); 11 OperationOne(); 12 OperationTwo(); 13 } 14 15 }
2、具体实现类,继承AbstractClass类,从写TemplateMethod方法
1 // A类 2 class ConcreteClassA : AbstractClass 3 { 4 5 public override void OperationOne() 6 { 7 Console.WriteLine("我是实现类A的第一个操作具体干的事。。。"); 8 } 9 10 public override void OperationTwo() 11 { 12 Console.WriteLine("我是实现类A的第二个操作具体要干的事。。。"); 13 } 14 } 15 //B类 16 class ConcreteClassB : AbstractClass 17 { 18 19 public override void OperationOne() 20 { 21 Console.WriteLine("我是实现类B的第一个操作具体干的事。。。"); 22 } 23 24 public override void OperationTwo() 25 { 26 Console.WriteLine("我是实现类B的第二个操作具体要干的事。。。"); 27 } 28 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!