关于C# 设计模式 TemplateMethod 模板方法模式

关于C# 设计模式 TemplateMethod 模板方法模式

using System;
using System.Collections.Generic;
using System.Text;

///Template Method(模板方法)模式定义一个操作中的算法的骨架,将具体的处理细节交给子类具体实现。
///add by jzh 2007-04-26
namespace DesignPattern
{
    /// <summary>
    /// 抽象模版(AbstractClass)角色
    /// 定义了一个或多个抽象操作,以便让子类实现。
    /// 这些抽象操作叫做基本操作,它们是一个顶级逻辑的组成步骤。
    /// </summary>
    class Algorithm
    {
        public void DoAlgorithm()
        {
            Console.WriteLine("In DoAlgorithm");

            Console.WriteLine("In Algorithm - 步骤1");

            Console.WriteLine("In Algorithm - 步骤2");

            DoAlgoStep3();

            Console.WriteLine("In Algorithm -步骤4");

            DoAlgoStep5();
        }

        virtual public void DoAlgoStep3()
        {
            Console.WriteLine("In Algorithm - 步骤3");
        }

        virtual public void DoAlgoStep5()
        {
            Console.WriteLine("In Algorithm - 步骤5");
        }
    }

    /// <summary>
    /// 具体模版(ConcreteClass)
    /// 实现父类所定义的一个或多个抽象方法,它们是一个顶级逻辑的组成步骤。
    /// </summary>
    class CustomAlgorithm : Algorithm
    {
        public override void DoAlgoStep3()
        {
            Console.WriteLine("In CustomAlgorithm - 步骤3");
        }

        public override void DoAlgoStep5()
        {
            Console.WriteLine("In CustomAlgorithm - 步骤5");
        }
    }

    public class Client
    {
        public static void Main(string[] args)
        {
            CustomAlgorithm c = new CustomAlgorithm();

            c.DoAlgorithm();

            Console.ReadLine();
        }
    }
}

 

发表回复

您的电子邮箱地址不会被公开。