Template Method——模板方法模式

模板方法模式介绍

在面向对象开发过程中,通常会遇到这样的一个问题,我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序,但是,某些步骤的具体实现还是未知的,或者说某些步骤的实现是会随着环境的变化而改变的。这个时候就需要用到模板方法模式。
模板方法实际上是封装了一个固定的流程,就像是一套执行模板一样,第一步该做什么,第二步该做什么都已经在抽象类中定义好。而子类可以有不同的算法实现,在框架不被修改的情况下实现某些步骤的替换。

模板方法的定义

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

模板方法的使用场景

  • 多个子类有公有的方法,并且逻辑基本相同时。
  • 重要、复杂的算法,可以把核心算法设计为模板方法,周边的相关细节功能则由各个子类来实现。
  • 重构时,模板方法是一个经常使用的模式,把相同的代码抽取到父类中。

应用实例

Android中的AsyncTask和Activity生命周期就是模板方法模式。

模板方法模式类图.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。