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

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

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

    模板方法模式通过把不变行为移到父类,去除子类中的重复代码来体现它的优势。当不变的行为和可变的行为在子类实现中混在一起的时候,通过模板方法模式可以帮助子类摆脱重复不变行为纠缠。

    定义父类:

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

    子类继承父类,实现父类中的方法

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

    客户端调用

    static void Main(string[] args)
    {
        AbstractClass A;
        A = new ConcreteClassA();
        A.TemplateMethod();
    
        A = new ConcreteClassB();
        A.TemplateMethod();
        Console.ReadKey();
    }
    

    运行结果:

  • 相关阅读:
    SQL compute by 的使用
    C# DES加密/解密字符串
    SET NOCOUNT { ON | OFF }
    SQL Server游标的使用 转
    SQL优化的一些总结
    精确获取时间(QueryPerformanceCounter)测试程序效率
    ajax的使用原理
    jq三级导航菜单可修改为二级、四级等导航菜单
    本地搭建PHP环境
    固定在屏幕底部的层
  • 原文地址:https://www.cnblogs.com/sunice/p/6901449.html
Copyright © 2011-2022 走看看