TemplateMethod(模板方法——行为模式)

模板方法模式是一种设计模式,它定义了操作中的算法骨架,而将一些步骤延迟到子类中。文章通过一个车辆类的例子展示了如何使用模板方法,其中`Vehical`是抽象类,包含抽象方法和虚方法作为扩展点,应用程序开发人员可以在子类如`HongQiCar`中实现这些方法。`VehicalTestFramework`用于测试不同的车辆实现。
摘要由CSDN通过智能技术生成

模板方法是设计模式中最重要且简洁的,应用十分广泛。
动机
在这里插入图片描述
意图
在这里插入图片描述
结构
在这里插入图片描述
代码
框架开发者

//框架开发者-先开发
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

抽象方法:没有具体实现
虚方法:有默认实现

创建模式:创建对象类型和具体实现(接口稳定)
结构模式:接口变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值