模板方法模式:
定义一个操作中算法的骨架,将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。
通过把不变的行为搬移到超类,去除子类中的重复代码来体现优势。
using System;
using System.Collections.Generic;
using System.Text;
namespace 设计模式
{
abstract class Abstractclass
{
public abstract void Operation1();
public abstract void Operation2();
public void TemplateMethod()
{
Operation1();
Operation2();
Console.WriteLine("抽象类调用");
}
}
class ConcreteClassA : Abstractclass
{
public override void Operation1()
{
Console.WriteLine("具体A类方法1实现");
}
public override void Operation2()
{
Console.WriteLine("具体A类方法2实现");
}
}
class ConcreteClassB : Abstractclass
{
public override void Operation1()
{
Console.WriteLine("具体B类方法1实现");
}
public override void Operation2()
{
Console.WriteLine("具体B类方法2实现");
}
}
class Costume
{
//客户端程序
static void Main(string[] args)
{
Abstractclass c;
c = new ConcreteClassA();
c.TemplateMethod();
c = new ConcreteClassB();
c.TemplateMethod();
}
}
}