模板方法

1. 概念

模板方法是通过定义一个算法骨架,而将算法中的步骤延迟到子类,这样子类就可以复写这些步骤的实现来实现特定的算法。


image.png

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

推荐阅读更多精彩内容