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

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

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

    模板方法模式提供了一个很好的代码复用的平台。结构图:

    AbstractClass定义:
        abstract class AbstractClass
        {
            public abstract void PrimitiveOperation1();
            public abstract void PrimitiveOperation2();
            public void TemplateMethod()
            {
                PrimitiveOperation1();
                PrimitiveOperation2();
                Console.WriteLine("");

            }
        }

    ConcreteClass类:
        class ConcreteClassA :AbstractClass
        {
            public override void PrimitiveOperation1()
            {
                Console.WriteLine("ConcreteClassA方法1实现");
            }
            public override void PrimitiveOperation2()
            {
                Console.WriteLine("ConcreteClassA方法2实现");
            }
        }

        class ConcreteClassB :AbstractClass
        {
            public override void PrimitiveOperation1()
            {
                Console.WriteLine("ConcreteClassB方法1实现");
            }
            public override void PrimitiveOperation2()
            {
                Console.WriteLine("ConcreteClassB方法2实现");
            }
        }

     主函数调用:

        class Program
        {
            static void Main(string[] args)
            {
                AbstractClass c;
                c = new ConcreteClassA();
                c.TemplateMethod();

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

                Console.ReadKey();
            }
        }
     

  • 相关阅读:
    【转】浅谈 C++ 中的 new/delete 和 new[]/delete[]
    指针与const
    【面经】【转】C程序的内存布局
    【面经】二叉树层次遍历
    【面经】【转】C++类型转换
    【转】fastdb中的数据字典
    AtCoder AGC043D Merge Triplets (DP、组合计数)
    AtCoder AGC024F Simple Subsequence Problem (字符串、DP)
    Codeforces 1110G Tree-Tac-Toe (博弈论)
    Luogu P5244 [USACO2019Feb Platinum] Mowing Mischief (动态规划、决策单调性)
  • 原文地址:https://www.cnblogs.com/lmfeng/p/2609744.html
Copyright © 2011-2022 走看看