模板方法模(Template Method Pattern): 定义一个操作中算法的骨架,将这些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
/// <summary>
/// 模板
/// </summary>
public abstract class AbstractClass
{
/// 子类需要实现此方法
protected abstract int _count();
protected abstract int _add();
/// <summary>
/// 一个算法,或者一个过程。
/// </summary>
/// <param name="input"></param>
public void Count(int input) {
var result = this._count()*input+_add()-20;
Console.WriteLine(result);
}
}
/// <summary>
/// 实现10倍+100
/// </summary>
public class ConcreteClass10 : AbstractClass
{
protected override int _add()
{
return 100;
}
protected override int _count()
{
return 10;
}
}
/// <summary>
/// 实现20倍+2
/// </summary>
public class ConcreteClass20 : AbstractClass
{
protected override int _add()
{
return 2;
}
protected override int _count()
{
return 20;
}
}
源码地址
其他设计模式