C#模板方法模式(Template Method Pattern)实例教程
作者:shichen2014 发布时间:2022-09-12 02:59:23
标签:C#,模板,方法,模式
本文以一个简单的实例形式讲述了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#程序设计的学习有所帮助。


猜你喜欢
- 一、首先在主布局中,用帧布局来填充 RecycleView 和 两个模拟发送消息的Button<?xml version="
- 本文实例讲述了java中javamail发送带附件的邮件实现方法。分享给大家供大家参考。具体分析如下:JavaMail,顾名思义,提供给开发
- maven配置项目的jdk版本无效排查最近在配置项目的jdk的时候发现在pom.xml中配置的1.8版本无效,maven更新后就变成了1.7
- 前两年写的东西,现在整理一下发出来!以前公司需要做WebService,并且对WebService的SoapHeader进行加密,所以就写了
- 目前只实现了java生成的固定的uuid:85bb94b8-fd4b-4e1c-8f49-3cedd49d8f28的序列化package m
- webservice的POST和GET请求调用POST请求1.发送请求import java.io.DataOutputStream;imp
- 本文实例为大家分享了Unity实现文本转贴图的具体代码,供大家参考,具体内容如下导入字体导入ttf字体,修改Character为Custom
- 概念IO流可以初步的理解为数据间的传输,我们将一组数据入:1234567,将他们从hello文件中转入haha文件中,使用程序的方法进行转入
- 通过自定义view实现仿iOS实现滑动两端的点选择时间的效果效果图自定义的view代码public class Ring_Slide2 ex
- Spring Expression Language (SpEL)是强大的表达式语言,支持查询、操作运行时对象图,以及解析逻辑、算术表达式。
- package com.imoyo.expert;import java.util.ArrayList;import android.app
- •readonly和const都是用来标识常量的[1]。•const可用于修饰class的field或者一个局部变量(local varia
- 本文实例讲述了Android开发中ImageLoder加载网络图片时将图片设置为ImageView背景的方法。分享给大家供大家参考,具体如下
- 本文较为详细的分析了vc提示unexpected end of file found的原因。分享给大家供大家参考。具体分析如下:预编译出错,
- SLF4J是一个日志框架抽象层,底下绑定具体的日志框架,比如说Log4J,Logback,Java Logging API等。SLF4J也有
- SessionFactory在Hibernate中实际上起到了一个缓冲区的作用 他缓冲了HI
- 系列文章已完成,目录如下:jdk-logging log4j logback日志系统实现机制原理介绍commons-lo
- 一、前期工作1.开启邮箱服务开启邮箱的POP3/SMTP服务(这里以qq邮箱为例,网易等都是一样的)2.导入依赖在springboot项目中
- 一、算法效率算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。 时间复杂度主要
- —学习并使用mybatis-plus的一些高级功能的用法例如: AR模式、 乐观锁 、逻辑删除 、自动填充、数据保护等功能为了方便演示,咱们