zoukankan      html  css  js  c++  java
  • 设计模式之模板方法模式

      模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。

    模板方法模式是通过把不变行为搬到超类,去除子类中的重复代码来体现它的优势。

    当不变和可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。我们通过模板方法模式把这些行为搬到单一的地方,这样就帮助子类摆脱重复的不变行为的纠缠。(转至大话设计模式)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 模板方法模式
    {
        class Exam
        {
            public void Test01()
            {
                Console.WriteLine("第一题:");
                Console.WriteLine("答案:"+answer1());
            }
            public virtual string answer1()
            {
                return "error";
            }
            public void Test02()
            {
                Console.WriteLine("第二题:");
                Console.WriteLine("答案:"+answer2());
            }
            public virtual string answer2()
            {
                return "error";
            }
        }
        class StuA:Exam
        {
            public override string answer2()
            {
                return "A";
            }
            public override string answer1()
            {
                return "A";
            }
        }
        class StuB:Exam
        {
            public override string answer2()
            {
                return "B";
            }
            public override string answer1()
            {
                return "B";
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                Exam stuA = new StuA();
                stuA.Test01();
                Exam stuB = new StuB();
                stuB.Test02();
                Console.ReadKey();
            }
        }
    }

  • 相关阅读:
    callee与caller
    vi/vim使用进阶: 在VIM中使用GDB调试 – 使用vimgdb
    error: No curses/termcap library found的解决办法
    shell变量详解
    在简历中使用STAR法则
    Hive教程之metastore的三种模式
    分布式服务框架 Zookeeper -- 管理分布式环境中的数据
    ZooKeeper典型应用场景
    HBase Java API类介绍
    Spark使用总结与分享
  • 原文地址:https://www.cnblogs.com/JsonZhangAA/p/5503238.html
Copyright © 2011-2022 走看看