博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#模板方法模式
阅读量:7065 次
发布时间:2019-06-28

本文共 1650 字,大约阅读时间需要 5 分钟。

模板方法模式是通过把不变行为搬移到超类,而超类一定会定义为虚类虚方法,虚方法在每个子类中重写,去除子类中的重复代码来体现它的优势。

通用模式样例代码为:

复制代码
1 /* 2  * Created by SharpDevelop. 3  * User: home 4  * Date: 2013/4/24 5  * Time: 21:42 6  *  7  * To change this template use Tools | Options | Coding | Edit Standard Headers. 8  */ 9 using System;10 11 namespace template12 {13     abstract class AbstractClass14     {15         public abstract void PrimitiveOperation1();16         public abstract void PrimitiveOperation2();17         18         public void TemplateMethod()19         {20             PrimitiveOperation1();21             PrimitiveOperation2();22             Console.WriteLine("");23         }24     }25     26     class ConcreteClassA : AbstractClass27     {28         public override void PrimitiveOperation1()29         {30             Console.WriteLine("具体类A方法1实现。");31         }32         public override void PrimitiveOperation2()33         {34             Console.WriteLine("具体类A方法2实现。");35         }36     }37     38     class ConcreteClassB : AbstractClass39     {40         public override void PrimitiveOperation1()41         {42             Console.WriteLine("具体类B方法1实现。");43         }44         public override void PrimitiveOperation2()45         {46             Console.WriteLine("具体类B方法2实现。");47         }48     }49     50     class Program51     {52         public static void Main(string[] args)53         {54             AbstractClass c;55             56             c = new ConcreteClassA();57             c.TemplateMethod();58             59             c = new ConcreteClassB();60             c.TemplateMethod();61             62             Console.Read();63         }64     }65 }
复制代码

转载地址:http://erall.baihongyu.com/

你可能感兴趣的文章
JQuery插件:动态列和无间隙网格布局Mason.js
查看>>
meta name="viewport" content="width=device-width,initial-scale=1.0" 解释
查看>>
尽量少用Include
查看>>
Fingerprint HAL
查看>>
用PHP编写Hadoop的MapReduce程序
查看>>
如何实现返回上一个页面,就像点击浏览器的返回按钮一般
查看>>
[sqoop1.99.7] sqoop实例——数据ETL
查看>>
Spark学习笔记——基于MLlib的机器学习
查看>>
数据结构(Java语言)——Stack简单实现
查看>>
JAVA开发中文乱码的几个解决方案
查看>>
sql server 游标continue,总是死循环
查看>>
C 标准库 - <stdarg.h>
查看>>
Android OpenGL ES 开发(八): OpenGL ES 着色器语言GLSL
查看>>
交换数据
查看>>
百度地图 放大或缩小后 中心点偏移(中心点不是在放大前的点)
查看>>
vlc播放rtsp之怪事
查看>>
MyBatis学习总结(一)——ORM概要与MyBatis快速起步
查看>>
SQLSERVER 2012 之 “代理 XP”组件已作为此服务器安全配置的一部分被关闭
查看>>
WebSocket异步通讯,实时返回数据实例
查看>>
Django 版本对应的 Python 版本
查看>>