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();
            }
        }
    }

  • 相关阅读:
    Django-模板系统、session、web框架、内置分页
    Django-中间件、csrf(跨站请求伪造)、auth认证模块
    Django-orm数据库查询语句
    Django视图函数
    Django-URL路由配置
    Django基础介绍
    JavaScript、jQuery操作页面
    JavaScript基础
    css属性设置-显示与隐藏、盒子阴影、固定定位
    css高级选择器
  • 原文地址:https://www.cnblogs.com/JsonZhangAA/p/5503238.html
Copyright © 2011-2022 走看看