首页 > 代码库 > 模板方法模式(Template Method)c#简单例子
模板方法模式(Template Method)c#简单例子
模板方法模式(Template Method)c#简单例子
要点:骨架、步骤延迟到子类
例子建立玩家骨架部分,具体动作由延迟到子类去做
namespace adapterpattern { public partial class TemplateMethodForm : Form { public TemplateMethodForm() { InitializeComponent(); } private void btndisplay_Click(object sender, EventArgs e) { Play p1 = new play1(); p1.Run(); listBox1.Items.Add(BaseData.DisplayString); Play p2 = new play2(); BaseData.DisplayString = ""; p2.Run(); listBox1.Items.Add(BaseData.DisplayString); } } public static class BaseData//数据中转站 { public static string DisplayString { get; set; } public static int EnemyNumber { get; set; } } public abstract class Play//模板 { //骨架 protected abstract void start(); protected abstract void move(); protected abstract void stop(); public void Run() { start();//延迟到子类 move(); stop(); } } public class play1 : Play//实现模板方法1 { protected override void start() { BaseData.DisplayString += "玩家1开始运行...."; } protected override void move() { BaseData.DisplayString += "移动......."; } protected override void stop() { BaseData.DisplayString += "停止运行....."; } } public class play2 : Play//实现模板方法1 { protected override void start() { BaseData.DisplayString += "玩家2开始运行...."; } protected override void move() { BaseData.DisplayString += "移动......."; } protected override void stop() { BaseData.DisplayString += "停止运行....."; } } }
模板方法模式(Template Method)c#简单例子
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。