专栏名称: Android博客周刊
[ Android Blog 周刊 ]每周一准时更新,主要包括本周最新的优秀国内外博客,新闻,类库,视频等 [www.androidblog.cn ] [ QQ群:149581646 ]
目录
相关文章推荐
开发者全社区  ·  传最强人妻牛莉离婚 ·  17 小时前  
鸿洋  ·  GPU硬件加速提升渲染流畅度 ·  昨天  
开发者全社区  ·  广州员工奴性事件 ·  昨天  
开发者全社区  ·  恒大歌舞团团长嫁人了 ·  昨天  
鸿洋  ·  ActivityTaskManagerSer ... ·  2 天前  
51好读  ›  专栏  ›  Android博客周刊

设计模式系列之九模板方法模式

Android博客周刊  · 公众号  · android  · 2017-01-12 08:12

正文

温馨提示:

微信公众号做了超链接限制,有兴趣的小伙伴可以直接到

www.androidblog.cn

或点击文章末尾" 阅读全文 "里进行查看

注意 【招编辑和分享讲师,有意者公众号留言】



作者简介:

本文作者 梦中人在梦中

本文原地址: http://www.jianshu.com/p/631517af4f37

文章源自网络,如果涉及侵权等问题,请第一时间联系我们予以下架



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

有一个泡茶和冲咖啡的业务,他们都有差不多相似的流程。

一、不使用设计模式



二、模板方法模式的使用

下面以一个代码样例来说明模板方法模式的使用。



三、使用钩子(hook)来做一些其它操作





四、比较

不使用设计模式 使用模板方法模式
Coffee和Tea主导一切;它们控制了算法 TemplateMethod控制了一切,它拥有算法,并且 保护这个算法
Coffee和Tea之间存在着重复的代码 通过TemplateMethod类实现了代码的复用
如果算法变了,需要修改Coffee和Tea类 新增算法或调整顺序只需要修改TemplateMethod类
由于类的组织不具有弹性,新加入第三种类型时需要完全重写一份 由于有模板存在,只需要实现差异化的逻辑即可
算法的知识和它的实现会分散在许多类中 TemplateMethod类专注在算法本身,而由子类提供完整的实现


------------------------------  End  ------------ --------------------


精选文章:

View事件体系 面试遇到的那些坑 Android密钥保护和C/S网络传输安全理论指南

随机洗牌算法 Android增量编译 由模块化到组件化(一) 一致性Hash算法

Android应用耗电量分析与优化建议 我不是不同意你的看法,而是受不了你说话的样子

仿京东手势解锁 开发人员一份技术简历写好很重要 泛型深度解耦下的MVP大瘦身


往期周刊:

50期 | 49期 | 48期 | 47期 |

46期 | 45期 | 44期 | 43期 | 42期 | 41期 | 40期 | 39期

38期 | 37期 | 36期 | 35期 | 34期 | 33期 | 32期 | 31期

30期 | 29期 | 28期 | 27期 | 26期 | 25期 | 24期 | 23期







请到「今天看啥」查看全文


推荐文章
开发者全社区  ·  传最强人妻牛莉离婚
17 小时前
开发者全社区  ·  广州员工奴性事件
昨天
开发者全社区  ·  恒大歌舞团团长嫁人了
昨天
虚拟现实  ·  VR软件销售额4年后或达140亿美元
8 年前
生活知识讲堂  ·  情侣聊天记录曝光,尺度太大了!
7 年前
中国政府网  ·  图解丨2017年4月5日国务院常务会议
7 年前