一,模板模式详解
-
概念
模板方法通过定义一个算法骨架,而将算法中的步骤延迟到子类,这样子类就可以复写这些步骤的实现来实现特定的算法 -
使用场景
(1)多个子类有共有的方法,并且逻辑基本相同时
(2)重要,复杂的算法,可以把核心算法设计为模板方法
(3)重构时 -
UML
image.png
-
代码示例
public abstract class AbstractWork {
protected void getUp() {
Log.e("zjy", "起床");
}
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() {
Log.e("zjy", "开车上班");
}
@Override
protected void work() {
Log.e("zjy", "分配员工");
}
@Override
protected void getOffWork() {
Log.e("zjy", "开车下班");
}
}
public class StaffWork extends AbstractWork{
@Override
protected void goToWork() {
Log.e("zjy", "公交上班");
}
@Override
protected void work() {
Log.e("zjy", "处理工作");
}
@Override
protected void getOffWork() {
Log.e("zjy", "公交下班");
}
}
BossWork bossWork = new BossWork();
bossWork.newDay();
StaffWork staffWork = new StaffWork();
staffWork.newDay();
二,Android中的实际运用
-
Activity&&Fragment
生命周期方法采用模板模式 -
AsyncTask
image.png
网友评论