模板设计模式简介
别称:模板方法模式
英文名:Template Pattern
特点
1、封装固定的通用逻辑步骤
2、具体步骤由不同的子类实现
优点
1、消除重复代码,便于代码维护
缺点
1、开发人员具备一定的代码阅读能力
实现思路
1、父类的方法中定义一个固定步骤流程,在方法体中调用一些作为步骤的抽象方法
2、父类包含固定步骤的方法称为模版方法,一般使用final修饰,禁止重写模版方法
3、子类重写表示具体步骤的方法(可以是普通方法,也可以是抽象方法)
代码举例
1、定义基类
基类中定义一个抽象方法setupUi,在onCreate方法中调用setupUi方法,此时onCreate()方法为模板方法,setupUi()方法为步骤方法
public abstract class BaseActivity extends Activity{
public void onCreate(Bundle bundle){
super.onCreate(bundle);
setupUi();
}
public abstract void setupUi();
}
2、定义子类,子类中具体实现抽象方法setupUi
public class MainActivity extends BaseActivity{
@Override
public void setupUi(){
}
}
总结
优点: 提取通用代码,便于维护
缺点:每一个不同的具体实现都需要一个子类,子类的个数会较多,使得系统更加庞大,不易于一般开发人员的代码阅读
使用场景: 多个子类的某些功能中,有一部分业务逻辑完全相同、只有个别的步骤业务逻辑不同,此时采用模版方法模式绝对完美(我真用了)
注意事项:为防止恶意操作,模板方法使用final修饰(也可不加final),本文中举例的onCreate()方法是模版方法(当年我迅雷同事的模版方法模式用的非常的溜,BaseActivity,哈哈)