C#模板方法模式(Template Method Pattern)实例教程

作者:shichen2014 时间:2022-09-12 02:59:23 

本文以一个简单的实例形式讲述了C#模板方法模式的实现方法,分享给大家供大家参考。具体实现方法如下:

这里假设要做一道红烧肉,做法有很多,在不同的做法中都有相同的部分,比如都要放油、放肉、放调料等。也有不同之处,比如有些做法放可乐,有些做法放甜蜜酱,等等。

先提炼出一个抽象类,该类不仅有制作红烧肉的各个步骤,而且还把各个步骤归纳到另一个方法,我们把这个方法称作模版方法。另外,在模版方法中,对于一些不确定的方面先用抽象方法。


public abstract class HongShaoRou
{
   public void MakeHongShaoRou()
   {
     You();
     Rou();
     Others();
     TiaoLiao();
   }
   public void You()
   {
     Console.WriteLine("放入油");
   }
   public void Rou()
   {
     Console.WriteLine("放入肉");
   }
   public abstract void Others();
   public void TiaoLiao()
   {
     Console.WriteLine("放入调料");
   }
}

假如,有一种"四川红烧肉"是放芝麻酱的。


public class SiChuangHongShaoRou : HongShaoRou
{
   public override void Others()
   {
     Console.WriteLine("放入芝麻酱");
   }
}

客户端只要调用抽象类的模版方法就可以。


class Program
{
   static void Main(string[] args)
   {
     HongShaoRou hongShaoRou = new SiChuangHongShaoRou();
     hongShaoRou.MakeHongShaoRou();
     Console.ReadKey();
   }
}

希望本文所述对大家C#程序设计的学习有所帮助。

标签:C#,模板,方法,模式
0
投稿

猜你喜欢

  • Java运算符从见过到掌握下

    2023-01-29 15:47:19
  • Spring BeanFactory 与 FactoryBean 的区别详情

    2023-12-23 02:51:46
  • android简单自定义View实现五子棋

    2023-06-01 19:30:38
  • 在spring中实例化bean无效的问题

    2022-03-16 17:55:34
  • Java开启JMX远程监控服务配置

    2021-11-02 01:14:43
  • spring boot整合RabbitMQ实例详解(Fanout模式)

    2022-08-18 18:52:30
  • Java基于深度优先遍历的随机迷宫生成算法

    2022-06-01 22:18:50
  • 条件数据库Android:sqllite的简单使用

    2023-07-11 15:39:24
  • SpringBoot中使用Redis Stream实现消息监听示例

    2021-09-02 04:42:07
  • Android中Window添加View的底层原理

    2021-07-15 06:13:05
  • SpringBoot下载Excel文件时,报错文件损坏的解决方案

    2023-01-09 15:49:16
  • OpenCV中C++函数imread读取图片的问题及解决方法

    2023-12-02 11:25:50
  • Flutter集成到已有iOS工程的方法步骤

    2023-07-31 22:53:53
  • Java常量池知识点总结

    2023-01-09 10:23:09
  • spring aop action中验证用户登录状态的实例代码

    2021-12-04 19:47:01
  • Android TabHost如何实现顶部选项卡

    2023-04-13 01:08:14
  • 详解Docker学习笔记之搭建一个JAVA Tomcat运行环境

    2022-09-03 02:26:06
  • Android中CountDownTimer 实现倒计时功能

    2022-01-03 00:00:24
  • java定时任务Timer和TimerTask使用详解

    2023-07-13 00:29:33
  • 解决Maven本地仓库明明有对应的jar包但还是报找不到的问题

    2022-07-21 23:12:07
  • asp之家 软件编程 m.aspxhome.com