模板方法模式(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 += "停止运行.....";
        }
    }
}
时间: 2024-08-07 16:04:54

模板方法模式(Template Method)c#简单例子的相关文章

设计模式(行为型)之模板方法模式(Template Method Pattern)

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbober] 阅读前一篇<设计模式(行为型)之命令模式(Command Pattern)>http://blog.csdn.net/yanbober/article/details/45500113 概述 模板方法模式是一种基于继承的代码复用,它是一种类行为型模式:是结构最简单的行为型设计模式,在其结构

设计模式之模板方法模式(Template Method)摘录

23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象.创建型模式有两个不断出现的主旋律.第一,它们都将关于该系统使用哪些具体的类的信息封装起来.第二,它们隐藏了这些类的实例是如何被创建和放在一起的.整个系统关于这些对象所知道的是由抽象类所定义的接口.因此,创建型模式在什么被创建,谁创建它,它是怎样被创建的,以

设计模式 - 模板方法模式(template method pattern) JFrame 具体解释

模板方法模式(template method pattern) JFrame 具体解释 本文地址: http://blog.csdn.net/caroline_wendy 參考模板方法模式(template method pattern): http://blog.csdn.net/caroline_wendy/article/details/32159455 模板方法模式(template method pattern), Java的JFrame使用模板方法模式, paint()是能够覆盖的方

设计模式 - 模板方法模式(template method pattern) JFrame 详解

模板方法模式(template method pattern) JFrame 详解 本文地址: http://blog.csdn.net/caroline_wendy 参考模板方法模式(template method pattern): http://blog.csdn.net/caroline_wendy/article/details/32159455 模板方法模式(template method pattern), Java的JFrame使用模板方法模式, paint()是可以覆盖的方法,

设计模式 - 模板方法模式(template method pattern) Applet 详解

模板方法模式(template method pattern) Applet 详解 本文地址: http://blog.csdn.net/caroline_wendy 参考模板方法模式(template method pattern): http://blog.csdn.net/caroline_wendy/article/details/32159455 模板方法模式(template method pattern), applet就是一个能够在网页上面执行的小程序, applet有很多钩子(

设计模式 - 模板方法模式(template method pattern) 排序(sort) 详解

模板方法模式(template method pattern) 排序(sort) 详解 本文地址: http://blog.csdn.net/caroline_wendy 参考模板方法模式(template method pattern): http://blog.csdn.net/caroline_wendy/article/details/32159455 模板方法模式的一个主要的应用是排序(sort)算法. 对象的排列方式并不是完全相同, 所以需要排序(sort)算法compareTo()

设计模式 - 模板方法模式(template method pattern) Applet 具体解释

模板方法模式(template method pattern) Applet 具体解释 本文地址: http://blog.csdn.net/caroline_wendy 參考模板方法模式(template method pattern): http://blog.csdn.net/caroline_wendy/article/details/32159455 模板方法模式(template method pattern), applet就是一个可以在网页上面运行的小程序, applet有非常多

设计模式 - 模板方法模式(template method pattern) 详解

模板方法模式(template method pattern) 详解 本文地址: http://blog.csdn.net/caroline_wendy 模板方法模式(template method pattern): 在一个方法中定义一个算法的骨架, 而将一些步骤延迟到子类中. 模板方法使得子类可以在不改变算法结构的情况下, 重新定义算法中的某些步骤. 模板方法可以进行挂钩(hook), 钩子(hook)是一种被声明在抽象类中的方法, 但只有空的或者默认的实现. 钩子的存在, 可以让子类有能力

设计模式 - 模板方法模式(template method pattern) 排序(sort) 具体解释

模板方法模式(template method pattern) 排序(sort) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy 參考模板方法模式(template method pattern): http://blog.csdn.net/caroline_wendy/article/details/32159455 模板方法模式的一个基本的应用是排序(sort)算法. 对象的排列方式并非全然同样, 所以须要排序(sort)算法compareTo(

模板方法模式-Template Method

模板方法模式-Template Method 由子类实现具体, 由模板提供调度执行 Template接口 public interface Template { void before(); void run(); void after(); default void execute() { before(); run(); after(); } } TemplateImpl类 这是一个模板的实现类 public class TemplateImpl implements Template {