行为型设计模式-模板方法 Template Method

date
Apr 27, 2021
slug
design-pattern-template-method
status
Published
tags
设计模式
summary
type
Page

简介

父类抽象类定义大的处理流程,部分细节做成抽象方法,留给子类去实现。
如Java的JUnit中, setUp tearDown方法都是留给具体的测试用例来写,Servlet中service处理了一个请求的大部分工作,留下doGet和doPost给业务自定义处理。
另外callback一般分两种方式:同步回调、异步回调,其中同步回调类似于模板方法模式,异步回调类似于观察者模式。
模板方法要基于继承,而回调更类似组合,

角色

  • 抽象模板类
    • 定义大的处理流程,留出部分方法给具体类实现
  • 具体模板类
    • 实现具体的处理逻辑

类图

如图,ConcreteClass实现了一些具体逻辑
notion image
 

代码

output:
 

© 菜皮 2020 - 2024