美文网首页
设计模式之模版方法模式

设计模式之模版方法模式

作者: 小螺丝钉cici | 来源:发表于2019-05-10 14:55 被阅读0次

场景:公司购买了饮料机,可以冲泡咖啡和冲泡茶两种饮料

1.定义
定义了一个操作算法框架,而将一些步骤延迟到子类中实现,使得子类在不改变一个算法结构的同时就重新定义该算法的某些特定步骤。

2.实现
模板方法一定要申明成final,不能够被复写
钩子函数(HOOK):通过抽象类或是本类中提供一个默认或者为空的实现,具体的子类可以自行决定是否挂钩以及如何挂钩。在某任务之前、之后、执行中、报异常后调用的方法(是不是有种熟悉的感觉)

3.特点
优点:①封装性好 ②复用性好 ③屏蔽细节 ④便于维护
缺点:继承只能是单个的,重构时会遇到困难

4.应用场景
①算法或操作遵循相似的逻辑
②重构时(把相同的代码抽取到父类中)
③重要、复杂的算法,核心算法设计设计为模板方法

分析场景:

image.png

饮料泡法的配置模版
(1)把水煮沸(soilwater) -共性
(2)泡饮料(brew) -个性
(3)把饮料倒进杯子(pourincup) -共性
(4)加调味料(add Condiments) -个性

实现要素:
准备一个抽象类,将部分逻辑以具体方法的形式实现,然后声明一些抽象方法交由子类实现剩余逻辑,用钩子方法给予子类更大的灵活性。最后将方法汇总构成一个不可改变的模板方法。

抽象基类:

image.png image.png image.png image.png

具体子类:

image.png image.png image.png image.png

行业案例:处理各种日志信息

image.png image.png image.png

相关文章

  • 设计模式-模版方法模式

    设计模式-模版方法模式 定义 模版方法模式(Template Method Pattern)又叫模版模式,是指定义...

  • 设计模式之模版方法模式

    模版方法模式 模版方法是一种只需使用继承就可以实现的非常简单的模式模版方法模式由两部分结构组成,第一部分是抽象父类...

  • 设计模式之模版方法模式

    模版方法模式 模版方法是一种只需使用继承就可以实现的非常简单的模式模版方法模式由两部分结构组成,第一部分是抽象父类...

  • 设计模式之模版方法模式

    场景:公司购买了饮料机,可以冲泡咖啡和冲泡茶两种饮料 1.定义定义了一个操作算法框架,而将一些步骤延迟到子类中实现...

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

    模版方法重在一气呵成的流程。模版方法模式是以类继承的方式表现:1.模版基类,定义了方法组的调用顺序。2.对应具体类...

  • 设计模式——模版方法模式

    在阎宏博士的《JAVA与模式》一书中开头是这样描述模板方法(Template Method)模式的:模板方法模式是...

  • 设计模式-模版方法模式

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

  • 设计模式-模版方法模式

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

  • 设计模式-模版方法模式

    一、定义 模版方法模式是一种对象行为模式。定义一个抽象类,将部分逻辑以具体方法(算法骨架)及具体构造函数的形式实现...

  • 设计模式-模版方法模式

网友评论

      本文标题:设计模式之模版方法模式

      本文链接:https://www.haomeiwen.com/subject/dfkaoqtx.html