设计模式_模板方法模式

模板方法模式

1、定义

定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义该算法的特定步骤。

2、使用场景

在面向对象的开发过程中,通常会遇到这样一个问题,知道一个算法说需要的关键步骤,并确定了这些步骤的执行顺序,但是某些步骤的具体实现是未知的。

1)、多个子类有公有的方法,并且逻辑基本相同时

2)、重要、复杂的算法,可以把核心算法设计为模板方法,周边的相关细节功能这由各个子类去实现

3)、重构时,模板方法模式是一个经常使用的模式,把相同的代码抽取到父类中,然后通过子函数约束其行为

3、UML类图

角色介绍:

AbsTemplate:抽象类,定义了一套算法框架

ConcreteImplA:具体实现类A

ConcreteImplB:具体实现类B

4、代码示例

AsynTask、Activity的生命周期、Fragment的生命周期

BaseActivity,BaseFragment

5、总结

模板方法总结成四个字就是:流程封装

优点:

1)、封装不变部分。扩展可变部分

2)、提取公共部分代码,便于维护

缺点:

模板方法会带来阅读代码的难度,会让用户觉得难以理解


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值