代码改变世界

模板模式

  Clingingboy  阅读(1077)  评论(0编辑  收藏  举报

   也是抽象与实现分离,其意图是定义一个模板,然后把具体实现交给子类完成.

image_2

1.接口

interface IPrimitives {
   string Operation1();
     string Operation2();
 }

2.实现

class ClassA : IPrimitives {
   public string Operation1() {
     return "ClassA:Op1 ";
   }
   public string Operation2() {
     return "ClassA:Op2 ";
   }
 }
 
 class ClassB : IPrimitives {
   public string Operation1() {
     return "ClassB:Op1 ";
   }
   public string Operation2() {
     return "ClassB.Op2 ";
   }
 }

3.调用

class Algorithm {
   public void TemplateMethod(IPrimitives a) {
       string s = 
         a.Operation1() +
         a.Operation2();
        Console.WriteLine(s);
   }
 }

4.客户端调用

static void Main() {
   Algorithm m = new Algorithm();
        
   m.TemplateMethod(new ClassA());
   m.TemplateMethod(new ClassB());
   Console.ReadKey();
 }

注意此模式与桥接模式很像,区别在于这里接口传值是是方法里实现的,这样就灵活一些.模板模式也广泛用于抽象类.这个模式其实大家一直在用,具体怎么用,还视具体情况
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2009-08-26 Spring.NET学习笔记(6)-基础AOP
点击右上角即可分享
微信分享提示