标签:步骤 activity over 函数 操作 使用 算法设计 tar oid
对于一个算法所需的关键步骤确定了顺序后,各个步骤的具体实现是未知的,如果遇到这类问题那么就可以采用模板方法模式解决。
定义:定义一个操作中的算法的框架而将一些步骤延迟到子类中,使子类可以不改变一个算法的结构即可冲定义该算法的某些特定步骤。
这里以把大象放入冰箱为例来实现模板方法,我们知道把大象放入冰箱需要三步,三步顺序是固定的但是每一步具体实现是可变的,比如放入冰箱的可以是大象也可以是小象
//抽象模板类
public abstract class AbstractTemplate{
protected void openfridgedoor(){
Log.i(TAG, "openfridgedoor: 打开冰箱门");
}
protected void putElephant(){
Log.i(TAG, "putElephant: 放入大象");
}
protected void closefridgedoor(){
Log.i(TAG, "closefridgedoor: 关闭冰箱门");
}
public final void start(){
openfridgedoor();
putElephant();
closefridgedoor();
Log.i(TAG, "start: suc");
}
}
//具体实现类
public class SmallElephant extends AbstractTemplate{
@Override
protected void putElephant() {
Log.i(TAG, "putElephant: 放入小象");
}
}
public void Test(){
SmallElephant smallElephant=new SmallElephant();
smallElephant.start();
}
Android中模板方法的应用可以参考AsyncTask或Activity声明周期函数。总结来说模板方法模式就是对流程的封装,即把某些固定流程封装到一个final函数中并让子类能够定制该流程中的步骤的实现。
封装不变部分,扩展可变部分,提取公共代码便于维护
该模式会带来代码阅读难度会让用户觉得难以理解
标签:步骤 activity over 函数 操作 使用 算法设计 tar oid
原文地址:https://www.cnblogs.com/Robin132929/p/13804804.html