我对模板方法模式的理解,其本质上是一个标准化的过程。
所谓标准化是指在经济、技术、科学和管理等社会实践中,对重复性的事物和概念,通过制订、发布和实施标准达到统一,以获得最佳秩序和社会效益。来自百度百科
从百度百科的定义上,可以发现的关键点是重复性的事物和概念,在客户端人机交互应用程序的开发上。都有界面的概念,并且往往不会只存在一个界面,每一个界面的初始化启动,都是一个重复的过程,在这个点上我们就可以抽象出一个标准化的算法过程,让所有的界面都遵循该算法。
模板方法模式,顾名思义。该模式里面有个方法叫模板方法,另外还有些方法叫基本方法:基本方法也叫做基本操作,是由子类实现的方法,并且被模板方法调用。模板方法里对这些基本方法的调用顺序可以理解为标准化的核心。
public abstract class BaseActivity extends Activity {
public static String TAG = "BaseActivity";
/*
* we use template method pattern,the function onCreate() is a template method pattern*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initVariables();
initView();
loadData();
}
//初始化变量,包括Intent带的数据和Activity内的变量
protected abstract void initVariables();
//加载layout布局文件,初始化控件,为控件挂上事件方法
protected abstract void initView();
//调用服务器API加载数据
protected abstract void loadData();
}
实战,在Android开发中,一个APP大多数情况下有不止一个Activity,每一个Activity的初始化过程可以被标准化,定义一个Activity的基类。