设计模式 模板设计模式(模版方法模式)

模板设计模式简介

别称:模板方法模式

英文名: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,哈哈)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值