zoukankan      html  css  js  c++  java
  • 模板模式:试卷考题实例

    模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类不改变一个算法的结构即可重定义该算法的某些特定步骤。
    模板方法模式通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势,提供了一个很好的代码复用平台。

    //抽象类,其实也就是一抽象模板,定义并实现了一个模板方法,这个模板方法一般是一个具体方法,它给出了一个顶级逻辑的骨架,而逻辑的组成步骤在相应的抽象操作中,放到子类中实现
    abstract class AbstractClass
    {

    //一些抽象行为,放到子类中实现
    public abstract void OriginalOperation1();
    public abstract void OriginalOperation2();
    //模板方法,给出了逻辑的骨架,而逻辑的组成是一些相应的抽象操作,她们都推迟到子类实现
    public void TemplateMethod()
    {

    OriginalOperation1();
    OriginalOperation2();
    Console.WriteLine("");

    }

    }

    class ConcreteClassA : AbstractClass

    {

    public override void OriginalOperation1()
    {

    Console.WriteLine("具体类A方法1实现");

    }

    public override void OriginalOperation2()
    {

    Console.WriteLine("具体类A方法2实现");

    }

    }
    class ConcreteClassB : AbstractClass
    {

    public override void OriginalOperation1()

    {

    Console.WriteLine("具体类B方法1实现");

    }

    public override void OriginalOperation2()
    {

    Console.WriteLine("具体类B方法2实现");

    }

    }


    客户端代码:
    static void Main(string[] args)
    {

    AbstractClass c;
    c = new ConcreteClassA();
    c.TemplateMethod();

    c = new ConcreteClassB();
    c.TemplateMethod();
    Console.ReadKey();

    }

  • 相关阅读:
    JavaScript中的事件
    JavaScript中的String
    和Java相关的一些好文章(不定期更新)
    大端序小端序
    C语言中const的正确用法
    skynet源码分析之网络层——Lua层介绍
    skynet源码分析之网络层——底层介绍
    skynet源码分析之定时器skynet_timer.c
    skynet源码分析之lua层消息处理
    skynet源码分析之snlua服务的启动流程(二)
  • 原文地址:https://www.cnblogs.com/xiaoweigogo/p/7793595.html
Copyright © 2011-2022 走看看