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