码迷,mamicode.com
首页 > Windows程序 > 详细

模板方法模式(Template Method)c#简单例子

时间:2014-12-19 00:44:44      阅读:329      评论:0      收藏:0      [点我收藏+]

标签:blog   ar   sp   for   on   数据   2014   art   log   

模板方法模式(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#简单例子

标签:blog   ar   sp   for   on   数据   2014   art   log   

原文地址:http://blog.csdn.net/zhgl7688/article/details/41990329

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!