在模板方法模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,
但调用将以抽象类中定义的方式进行。
public abstract class OneDayLife {
protected void getUp(){
System.out.println("早上开始起床。。。");
}
abstract void goToWork();
abstract void work();
abstract void goToHome();
// 模板
public final void spendDay (){
// 起床
getUp();
// 去上班
goToWork();
//上班
work();
//下班回家
goToHome();
}
}
public class ProjectManager extends OneDayLife {
@Override
void goToWork() {
System.out.println("开车去上班。。。");
}
@Override
void work() {
System.out.println("给组员分配需求。。。");
}
@Override
void goToHome() {
System.out.println("开车下班回家。。。");
}
}
public class Developer extends OneDayLife {
@Override
void goToWork() {
System.out.println("坐公家车去上班。。。");
}
@Override
void work() {
System.out.println("编写代码。。。");
}
@Override
void goToHome() {
System.out.println("下班走路回家。。。");
}
}
public class TemplatePatternTest {
public static void main(String [] args) {
OneDayLife manager = new ProjectManager();
manager.spendDay();
System.out.println("====================================================");
OneDayLife developer = new Developer();
developer.spendDay();
}
}
本文深入探讨了模板方法模式(Template Pattern)的概念与应用。通过一个具体案例,展示了一个抽象类如何定义执行方法的模板,而其子类则可以根据需要重写特定的方法实现,同时保持调用顺序不变。具体演示了项目经理和开发者一天生活的不同实现。
1676

被折叠的 条评论
为什么被折叠?



