模板方法是设计模式中最重要且简洁的,应用十分广泛。
动机
意图
结构
代码
框架开发者
//框架开发者-先开发
abstract class Vehical
{
protected abstract void StartUp();
protected abstract void Run();
protected abstract void Turn(int degree);
protected abstract void Stop();
public void Test()
{
//测试数据记录
StartUp();//晚绑定————留给应用程序开发人员,扩展点
//测试数据记录
Run();//晚绑定————留给应用程序开发人员,扩展点
//测试数据记录
Stop();//晚绑定————留给应用程序开发人员,扩展点
//测试数据记录
//生成测试数据
}
}
class VehicalTestFramework
{
public static void DoTest(Vehical vehical)
{
vehical.Test();
}
}
应用程序开发人员
//应用程序开发人员-晚开发
class HongQiCar:Vehical
{
protected override void StartUp()
{
}
protected override void Run()
{
}
protected override void Turn(int degree)
{
}
protected override void Stop()
{
}
}
class App
{
public void Use()
{
VehicalTestFramework.DoTest(new HongQiCar());
}
}
要点
虚方法——扩展点,设置为Protected
抽象方法:没有具体实现
虚方法:有默认实现
创建模式:创建对象类型和具体实现(接口稳定)
结构模式:接口变化