在模板方法模式(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(); } }