设计模式9 - 模板方法模式【Template Method Pattern】

简介: 设计模式9 - 模板方法模式【Template Method Pattern】

模板方法模式

定义:

Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm’s structure

定义一个算法中的操作框架,而将一些步骤延迟到子类中。使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。

举例(启动奥迪Q5的流程):

车子抽象类:

public abstract class AbstractCar {
    /**
     * 踩住刹车
     */
    public abstract void stepBrake();
    /**
     * 一键启动
     */
    public abstract void oneKeyStart();
    /**
     * 放下手刹
     */
    public abstract void putDownHandBrake();
    /**
     * 松开刹车
     */
    public abstract void releaseBrake();
    /**
     * 启动Q5整个流程
     */
    protected void run() {
        this.stepBrake();
        this.oneKeyStart();
        this.putDownHandBrake();
        this.releaseBrake();
    }
}

Q5实现类:

public class AudiQ5Car extends AbstractCar {
    public void main() {
        run();//如何开启Q5
    }
    @Override
    public void stepBrake() {
        Log.i("TAG", "踩住刹车......");
    }
    @Override
    public void oneKeyStart() {
        Log.i("TAG", "一键启动......");
    }
    @Override
    public void putDownHandBrake() {
        Log.i("TAG", "放下手刹......");
    }
    @Override
    public void releaseBrake() {
        Log.i("TAG", "松开刹车......");
    }
}

总结:

AudiQ5Car 在main方法中调用了run方法,会自动执行下面实现的子类,而流程是怎么取实现的,是由抽象类的run方法里面的流程定义了。


目录
相关文章
|
3天前
|
设计模式 算法 Java
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
|
13天前
|
设计模式 存储 Java
Java设计模式:解释一下单例模式(Singleton Pattern)。
`Singleton Pattern`是Java中的创建型设计模式,确保类只有一个实例并提供全局访问点。它通过私有化构造函数,用静态方法返回唯一的实例。类内静态变量存储此实例,对外仅通过静态方法访问。
16 1
|
15天前
|
设计模式 算法 Java
小谈设计模式(11)—模板方法模式
小谈设计模式(11)—模板方法模式
|
17天前
|
设计模式 算法 Java
23种设计模式,模板方法模式的概念优缺点以及JAVA代码举例
【4月更文挑战第10天】模板方法模式是一种行为设计模式,它定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些特定步骤。
15 0
|
1月前
|
设计模式 存储 算法
【设计模式】模板方法模式
【设计模式】模板方法模式
|
1月前
|
设计模式 算法 Java
【设计模式】springboot3项目整合模板方法深入理解设计模式之模板方法(Template Method)
【设计模式】springboot3项目整合模板方法深入理解设计模式之模板方法(Template Method)
|
2月前
|
设计模式 算法 Java
Java设计模式——模板方法模式
Java设计模式——模板方法模式
41 2
|
18天前
|
设计模式 SQL 算法
设计模式了解哪些,模版模式
设计模式了解哪些,模版模式
19 0
|
1月前
|
设计模式 Java uml
C++设计模式之 依赖注入模式探索
C++设计模式之 依赖注入模式探索
37 0
|
2月前
|
设计模式 前端开发 JavaScript
观察者模式 vs 发布-订阅模式:两种设计模式的对决!
欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚开始学习前端的读者们打造的。无论你是初学者还是有一些基础的开发者,我们都会在这里为你提供一个系统而又亲切的学习平台。我们以问答形式更新,为大家呈现精选的前端知识点和最佳实践。通过深入浅出的解释概念,并提供实际案例和练习,让你逐步建立起一个扎实的基础。无论是HTML、CSS、JavaScript还是最新的前端框架和工具,我们都将为你提供丰富的内容和实用技巧,帮助你更好地理解并运用前端开发中的各种技术。