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

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

    当我们要完成在某一细节层次一致的一个过程或者一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理

    namespace 模板方法模式
    {
        class Program
        {
            static void Main(string[] args)
            {
                AbstractClass c;
                //调用模板A
                c = new ConcreteClassA();
                c.TemplateMethod();
                //调用模板B
                c = new ConcreteClassB();
                c.TemplateMethod();
    
                Console.Read();
    
            }
        }
        /// <summary>
        /// 定义处理方法基类
        /// </summary>
        abstract class AbstractClass
        {
            //抽象操作方法1
            public abstract void PrimitiveOperation1();
            //抽象操作方法2
            public abstract void PrimitiveOperation2();
            //调用方法
            public void TemplateMethod()
            {
                PrimitiveOperation1();
                PrimitiveOperation2();
                Console.WriteLine("");
            }
        }
        /// <summary>
        /// A 模板 继承基类,实现抽象方法
        /// </summary>
        class ConcreteClassA : AbstractClass
        {
            public override void PrimitiveOperation1()
            {
                Console.WriteLine("具体类A方法1实现");
            }
            public override void PrimitiveOperation2()
            {
                Console.WriteLine("具体类A方法2实现");
            }
        }
        /// <summary>
        /// B 模板 继承基类,实现抽象方法
        /// </summary>
        class ConcreteClassB : AbstractClass
        {
            public override void PrimitiveOperation1()
            {
                Console.WriteLine("具体类B方法1实现");
            }
            public override void PrimitiveOperation2()
            {
                Console.WriteLine("具体类B方法2实现");
            }
        }
    
    }
    

      

  • 相关阅读:
    java 可变參数列表
    Java -Xms -Xmx -Xss -XX:MaxNewSize -XX:MaxPermSize含义记录
    hdu 4939
    什么是堆和栈,它们在哪儿?
    PPAPI插件与浏览器的通信
    Java&amp;Xml教程(十一)JAXB实现XML与Java对象转换
    Heavy Transportation
    Python学习笔记-小记
    C/C++知识要点5——智能指针原理及自己定义实现
    小米2S电池电量用尽充电无法开机解决方法
  • 原文地址:https://www.cnblogs.com/happygx/p/8392982.html
Copyright © 2011-2022 走看看