设计模式学习(十六) 模板方法模式
场景:
-- 客户到银行办理业务
1:取号排队
2:办理具体现金/转账/企业/个人/理财业务
3: 给银行工作人员评分
模板方法介绍;
-- 模板方法模式是编程中经常用到的模式,它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤
核心:
-- 处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不能确定。因此,我们采用模板方法模式。将这个节点的代码实现转移给子类完成。即:处理步骤父类中定义好,具体实现延迟到子类中
银行业务代码实现:
package templateMethod;public abstract class BankTemplateMethod {public void takeNumber(){System.out.println("取号排队");}public abstract void transact();public void evaluate(){System.out.println("反馈评分");}//模板方法public final void process(){this.takeNumber();this.transact();this.evaluate();} }
模板
package templateMethod;public class Client {public static void main(String[] args){BankTemplateMethod btm = new DrawMoney();btm.process();//采用匿名内部类BankTemplateMethod btm2 = new BankTemplateMethod(){@Overridepublic void transact() {System.out.println("我要存钱");}};System.out.println();btm2.process();}}class DrawMoney extends BankTemplateMethod{@Overridepublic void transact() {System.out.println("我要取钱");}}
客户端与模板实现
好莱坞原则:
“Don't call me, we'll call you back”.
-- 在软件开发中我们可以将call翻译为调用。子类不能调用父类,而通过父类调用子类。这些调用步骤已经在父类中写好了,完全由父类控制整个过程
应用场景:
转载于:https://www.cnblogs.com/lipeng0824/p/4442989.html
设计模式学习(十六) 模板方法模式相关推荐
- 设计模式学习笔记(六) - 组合模式 Composite (树状结构专用模式)
组合模式 Composite 树状结构专用模式 递归遍历结构
- PyTorch框架学习十六——正则化与Dropout
PyTorch框架学习十六--正则化与Dropout 一.泛化误差 二.L2正则化与权值衰减 三.正则化之Dropout 补充: 这次笔记主要关注防止模型过拟合的两种方法:正则化与Dropout. 一 ...
- 设计模式学习笔记——模板(Template)模式
设计模式学习笔记--模板(Template)模式 @(设计模式)[设计模式, 模板模式, template, 模板方法] 设计模式学习笔记模板Template模式 基本介绍 模板案例 类图 实现代码 ...
- C#设计模式之十六观察者模式(Observer Pattern)【行为型】
C#设计模式之十六观察者模式(Observer Pattern)[行为型] 原文:C#设计模式之十六观察者模式(Observer Pattern)[行为型] 一.引言 今天是2017年11月份的最后一 ...
- Python的学习(十六):对文件的操作
Python的学习(十六):对文件的操作 编码格式的介绍 Python中的解释器使用的是Unicode(内存) .py文件在磁盘上使用UTF-8存储(外存) 如何修改文件格式?不写的话默认为UTF-8 ...
- 云计算设计模式(十)——守门员模式
云计算设计模式(十)--守门员模式 通过使用充当客户端和应用程序或服务之间的代理,验证和进行消毒的请求,并将它们之间的请求和数据的专用主机实例保护的应用程序和服务.这可以提供一个额外的安全层,并限制了 ...
- OpenCV与图像处理学习十六——模板匹配
OpenCV与图像处理学习十六--模板匹配 一.模板匹配介绍 二.代码应用 一.模板匹配介绍 模板匹配是一种最原始.最基本的模式识别方法,研究某一特定目标的图像位于图像的什么地方,进而对图像进行定位. ...
- 设计模式学习笔记——解释器(Interpreter)模式
设计模式学习笔记--解释器(Interpreter)模式 @(设计模式)[设计模式, 解释器模式, Interpreter] 设计模式学习笔记解释器Interpreter模式 基本介绍 解释器案例 类 ...
- 设计模式学习笔记——命令(Command)模式
设计模式学习笔记--命令(Command)模式 @(设计模式)[设计模式, 命令模式, command] 设计模式学习笔记命令Command模式 基本介绍 命令案例 类图 实现代码 Command接口 ...
- 设计模式学习笔记——代理(Proxy)模式
设计模式学习笔记--代理(Proxy)模式 @(设计模式)[设计模式, 代理模式, proxy] 设计模式学习笔记代理Proxy模式 基本介绍 代理案例 类图 实现代码 Printable接口 Pri ...
最新文章
- 一棵树,怎么就平衡了(图解AVL+实现)
- mysql数据库文件的真实的物理存储位置
- 应用MVP模式写出可维护的优美Android应用
- using a dict on a Series for aggregation is deprecated and will be removed in a future version
- Redis的几个认识误区
- crntos7启动php命令_CentOS7设置php-fpm开机自启动
- splitpane如何设置竖条的宽度_如何用 CSS 画三角形和箭头
- 《大数据管理概论》一2.5 知识融合技术
- ssis行计数变量_SSIS管道性能计数器指南
- 莫比乌斯函数之和(51nod 1244)
- Flutter学习 — 使用WebSockets
- springcloud集成seata+euraka 构成的分布式事务控制(待补充)
- 静态市盈率和动态市盈率
- SWUSTOJ #69 偷菜时间表
- Python将经纬度数据转换成浮点数据
- 【Vue2注册登录界面】Vue2+elementUI编写一个登录页面,路由式开发,后台管理系统登录界面
- 苹果iphone 12它只是一个电话
- Mybatis实战练习六【批量删除Mybatis参数传递】
- 侯为贵在中兴画上了一个完美的句号
- 为什么要选择106短信接口?
热门文章
- 英特尔双倍功耗换性能,放话12代酷睿i9超越M1 Max,网友:可以煎鸡蛋了?
- 亚马逊员工流动率150%,每8个月相当于“大换血”,网友:贝佐斯不知足
- 隐私计算,企业数字化转型的BUFF之争
- 马斯克刚失了一枚大火箭!
- 华为「硬」生生把AI搞出暴力美学
- 还在担心工作被AI取代?不如掌握这门硬实力,抢占职场发展机遇
- 谷歌大脑开源「数据增强」新招数:ImageNet准确率达85%,大神Quoc Le出品
- 马化腾发起的科学探索奖首次颁出,50名中国大陆青年学者获奖,每人获300万资助...
- 运维日常:群发邮件营销平台--EDM
- 2015-01-30工作日记