好书推荐-《Head First设计模式》
来源:互联网 发布:公司域名注册 编辑:程序博客网 时间:2024/06/05 17:20
图书信息
作者:Eric Freeman
中文版出版社:中国电力出版社
推荐理由
这是我看过的最好的计算机类图书(别嫌弃我读书少,–>__–>),它有如下优点:
图文并茂、层层深入、生动有趣、从问题引出解决方案代入感强、每章的总结别出心裁、学习者与设计大师的对话深入浅出、读每一章都像在读一个故事……
本书一直在强调一件事情:针对接口编程,而不是针对实现编程。“针对接口编程”真正意思是“针对超类型编程”,关键就在多态,利用多态,程序可以针对超类型编程,执行时会根据实际状况执行到真正的行为,不会被绑死在超类型的行为上。分开可能需要变化的部分,把它们独立出来,不要和不需要变化的代码混在一起。
本书内容
1 策略模式
2 观察者模式
3 装饰者模式
4 工厂模式
5 单件模式
6 命令模式
7 适配者与外观模式
8 模板方法模式
9 迭代器与组合模式
10 状态模式
11 代理模式
12 复合模式
13真实世界中的模式
14剩下的模式
对自动化测试的一点启发
在读命令模式这一章的时候突然联想到一个困扰我多时的问题:在Android应用开发中如何做好功能测试?我们知道移动应用中涉及到大量用户交互场景,很难做到自动化测试,完全自动化不太现实,我们只做逻辑测试会简单一点吧。
抛开界面,我们的功能其实就是一串方法调用,只是按照我们的开发习惯这些方法会散落在每个界面,我们为什么不把他们从界面拿出来写入一个逻辑处理层呢?这样只需要测试逻辑处理层就可以了。请看我在知乎的提问:作为应用开发者你是如何做好自测的?
Activit01{ btn01{ process01 } btn02{ process02; goto Activity02 }}Activit02{ btn03{ process03 } btn04{ process04; }}
上面的代码要想测试只能通过页面操作来触发逻辑了。
下面添加逻辑层:
Presenter{ Callback cb Presenter(Callback cb) process01 process02 process03 process04}Activit01{ Callback cb Presenter p = new Presenter(cb) btn01{ p.process01 } btn02{ p.process02; goto Activity02 }}Activit02{ Callback cb Presenter p = new Presenter(cb) btn03{ p.process03 } btn04{ p.process04; }}Test{ Callback cb Presenter p = new Presenter(cb) test01{ p.process01 } test02{ p.process02 } test03{ p.process03 } test04{ p.process04 }}
这样在Test中你可以随意调用逻辑层代码。
这是我理解的很原始的MVP模式的实现,可能通过回调不是最简洁的方式,但是最易懂的。
计划
目前读到适配器与外观模式这一章,后面计划往后读的同时总结前面的章节,真正吸收为自己的东西,以后在开发过程中去运用。
- 好书推荐-《Head First设计模式》
- 23种设计模式与《Head First设计模式》推荐
- Head First 设计模式
- Head-first设计模式
- head first 设计模式
- head first 设计模式
- Head First 设计模式
- 《Head First 设计模式》
- Head First设计模式
- Head First《设计模式》
- 《Head First设计模式》
- Head First设计模式
- Head First设计模式摘要
- 《Head First设计模式》读后感
- 《head first 设计模式》笔记
- Head First 设计模式 笔记
- Head First设计模式笔记
- 《 Head First 设计模式》Demo
- PHP流程控制if-else ,switch
- Unity3D笔记第十一天——碰撞器
- Scramble String
- 上传文件漏洞&解析漏洞
- PopupWindow与PopupMenu的用法
- 好书推荐-《Head First设计模式》
- 离线+并查集 hdu5441 Travel
- clipdrawable
- FireMonkey创建第一个跨平台应用
- virtualbox装系统遇到的报错问题Unable to load R3 module D:\Program Files\Oracle\VirtualBox/VBoxDD.DLL (VBox
- ubuntu安装docker
- 10.Android ImageView ScaleType属性
- linux 基础命令
- JavaSE笔记