前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >模板方法模式

模板方法模式

作者头像
帅飞
发布2019-01-22 17:22:00
4820
发布2019-01-22 17:22:00
举报
文章被收录于专栏:Java知其所以然

必定有钩子(没有实现的方法,需要子类去实现)和实现的方法。

定义

模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤的实现延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中某些步骤的具体实现。

线程池中的模板方法模式

AbstractExecutorService 中就有模板方法模式。它实现了部分方法,也留下了钩子。

submit() 就是一个模板方法,它方法体里调用的父接口 Executor 的 execute() 方法其实并没有实现,而是交给子类去实现。

常见的模板方法模式

Spring 中 JdbcTemplate, 就是替我们封装了一套模板,我们在使用的时候只需要写 CRUD 就可以了,并不需要去释放资源和获取数据库链接。

HttpServlet 中的 doGet,doPost 方法

java.util.Arrays 的 sort 方法

优点

很好的实现了代码重用,可以将代码的不变部分和可变部分分离出来,写一个模板,实现不变部分,抽象不可变部分。

感触

学了这个设计模式以后,瞬间想起以前自己想的代码,我去重构自己的代码了。模板方法模式使我们的代码干净,可读性好,代码重用性高。在 java 中,我们就是要不停的去想,去抽象,越高的抽象,你的代码写出来越更有一种艺术味。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java知其所以然 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定义
  • 线程池中的模板方法模式
  • 常见的模板方法模式
    • 优点
    • 感触
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档