大话设计模式读书笔记--7.模板方法模式

本文介绍了模板方法设计模式的概念及应用场景,通过一个学生抄写考试题的例子,详细解释了如何利用模板方法模式来处理一系列固定步骤的过程,同时保持灵活性。

有时候,我们会遇到由一系列步骤构成的过程,这个过程从高层次上看是相同的,但有些步骤的实现可能不同,我们就要考虑使用模板方法

生活中的例子:坐交通工具上班,  A开车,B做公交, 交通工具就是一个抽象模板

定义

定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类不改变算法的结构,即可重定义该算法的某些特定步骤

模式结构

AbstractClass:是一个抽象模板类,templateMethod()是模板方法,它是一个顶级逻辑的骨架,primitiveOperation()是一个抽象方法,是顶级逻辑的组成部分

ConcreteClass: 实现父类所定义的抽象方法,每一个ConcreteClass都可以给出不同的实现,从而是顶级逻辑的实现不同

模式实现

场景: 学生抄写考试题,并写出答案

场景分析:

高层次步骤: 抄题,写答案
没变化的步骤; 抄写的题目一样
有变化的步骤: 每个人的答案不同

点击下载代码

特点和使用场景

特点: 

1.把不变行为搬移到超类,去除子类中的重复代码,体现它的优势
2.通过父类调用子类,这是一种反向的控制

使用场景: 

1.一次性实现一个算法的不变部分,并将可变的行为留给子类来实现。

2.需要通过子类来决定父类算法中某个步骤是否执行,实现子类对父类的反向控制。

 

转载于:https://www.cnblogs.com/liuconglin/p/6414441.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值