模板方法模式(Template Method Pattern)是一种行为设计模式,它在一个方法中定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。
这样可以在不改变算法结构的情况下重新定义算法的某些特定步骤。
// 抽象类,定义在线学习的模板方法和算法的骨架
abstract class OnlineCourse {
// 模板方法,定义学习课程的步骤
final void learnCourse() {
register();
study();
submitHomework();
completeCourse();
}
// 具体方法
void register() {
System.out.println("学生注册课程");
}
// 抽象方法,由子类具体实现
abstract void study();
// 抽象方法,由子类具体实现
abstract void submitHomework();
// 具体方法
void completeCourse() {
System.out.println("完成课程,颁发证书");
}
}
// 具体类:Python课程
class PythonCourse extends OnlineCourse {
@Override
void study() {
System.out.println("学习Python编程基础");
}
@Override
void submitHomework() {
System.out.println("提交Python项目作业");
}
}
// 具体类:Java课程
class JavaCourse extends OnlineCourse {
@Override
void study() {
System.out.println("学习Java核心技术");
}
@Override
void submitHomework() {
System.out.println("提交Java项目作业");
}
}
// 客户端代码
public class EducationPlatform {
public static void main(String[] args) {
OnlineCourse pythonCourse = new PythonCourse();
pythonCourse.learnCourse(); // 使用模板方法
OnlineCourse javaCourse = new JavaCourse();
javaCourse.learnCourse(); // 使用模板方法
}
}