1. 概念
模板方法是通過定義一個算法骨架挖帘,而將算法中的步驟延遲到子類舌涨,這樣子類就可以復(fù)寫這些步驟的實現(xiàn)來實現(xiàn)特定的算法计呈。
2. 使用場景
- 多個子類有公共的方法周霉,并且邏輯基本相同時
- 重要、復(fù)雜的算法摊欠,可以把核心算法設(shè)計為模板方法
- 重構(gòu)時丢烘,模板方法模式是一個經(jīng)常使用的模式
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中的應(yīng)用
activity的生命周期方法
AsyncTask