1. 概念
模板方法是通过定义一个算法骨架,而将算法中的步骤延迟到子类,这样子类就可以复写这些步骤的实现来实现特定的算法。
2. 使用场景
- 多个子类有公共的方法,并且逻辑基本相同时
- 重要、复杂的算法,可以把核心算法设计为模板方法
- 重构时,模板方法模式是一个经常使用的模式
3. 实例
public abstract class AbstractWork {
protected void getUp() {
System.out.println("起床了");
}
protected abstract void goToWork();
protected abstract void work();
protected abstract void getOffWork();
public final void newDay() {
getUp();
goToWork();
work();
getOffWork();
}
}
public class BossWork extends AbstractWork {
@Override
protected void goToWork() {
System.out.println("老板开车上班");
}
@Override
protected void work() {
System.out.println("老板分配工作给员工");
}
@Override
protected void getOffWork() {
System.out.println("老板开车下班");
}
}
public class StaffWork extends AbstractWork {
@Override
protected void goToWork() {
System.out.println("员工走路去上班");
}
@Override
protected void work() {
System.out.println("员工努力工作");
}
@Override
protected void getOffWork() {
System.out.println("员工走路下班");
}
}
public class Test {
public static void main(String[] args){
BossWork bossWork = new BossWork();
StaffWork staffWork = new StaffWork();
bossWork.newDay();
System.out.println("--------------------------------");
staffWork.newDay();
}
}
4. 在android中的应用
activity的生命周期方法
AsyncTask