设计模式-模板方法
模板方法
定义:定义一个过程中的算法骨架,而将算法的一些步骤延迟到子类中。
这么做是为了将不变的部分封装到父类中实现,而将可变部分的算法由子类继承实现,便于扩展。
模板结构:
- 抽象模板
- 模板方法:定义了算法的骨架,按某种顺序调用其包含的基本方法。
- 基本方法:
- 抽象方法:在抽象类中声明,由具体子类实现。
- 具体方法:在抽象类中已经实现,在具体子类中可以继承或重写它。
- 钩子方法:在抽象类中已经实现,包括用于判断的逻辑方法和需要子类重写的空方法两种。
- 具体子类
具体实现类,实现抽象类中定义的抽象方法和钩子方法。
代码示例:
public abstract class AbstractClass {
public void templateMethod(){
specificMethd();
abstractMethod1();
abstractMethod2();
}
void specificMethd(){
System.out.println("抽象类实现的方法");
}
abstract void abstractMethod1();
abstract void abstractMethod2();
}
public class ConcreteClass extends AbstractClass {
@Override
void abstractMethod1() {
System.out.println("子类实现的方法1");
}
@Override
void abstractMethod2() {
System.out.println("子类实现的方法2");
}
}
测试代码:
public static void main(String[] args) throws InterruptedException, CloneNotSupportedException {
AbstractClass abstractClass=new ConcreteClass();
abstractClass.templateMethod();
}
书山有路勤为径,学海无涯苦作舟
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律