[每天读书半小时] 2015-6-8 设计模式
来源:互联网 发布:淘宝店铺出售一个多少 编辑:程序博客网 时间:2024/06/09 17:35
看Jersey文档中的OAuth1Parameters,这个类使用了builder模式,于是找出四人帮的《设计模式》一书温习一下builder模式。
==============================
builder模式的适用场景:
1. 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
2. 当构造过程必须允许被构造的对象有不同的表示时。
==============================
builder模式的效果:
1. 它使你可以改变一个产品的内部表示
2. 它将构造代码和表示代码分开
3. 它使你可对构造过程进行更精细的控制
==============================
实现中的考虑:
1. builder类的接口足够普遍以便为各种类型的builder构造产品
2. 产品没有抽象类 - 具体builder类生成的产品,通常它们的表示差别很大。差别太大的情况下,给产品定义公共接口没有多大的意义。
针对这一点,我觉得如果差异性没有那么大,给产品提供一个抽象基类或接口也是很好的。比如我在项目中做的文件格式转换,一些3D格式虽然各有不同但是还是有足够的共性,例如mesh, cs, materials,animation等是可以抽取的。
3. C++实现Builder类时,方法的缺省实现为空。这样做主要是为了方便 - 具体的builder类只需要实现感兴趣的方法。
其实从去年下半年开始就想将基本经典的书籍重新读一遍,可是一直未能如愿。完整地读《设计模式》应该是在10年前了,那个时候很傻很天真,书中的东西只懂了皮毛记住了几个模式的名称。深入理解尚不可及,何论融会贯通?近几年大部分时间都被微博微信碎片化,看的东西很零碎很肤浅,能够在心里留下痕迹的很少。从六月份开始,下定决心每天读书做记录,管理好自己的读书时间。
- [每天读书半小时] 2015-6-8 设计模式
- [每天读书半小时] 2015-6-5
- [每天读书半小时] 2015-6-9
- [每天读书半小时] 6-15
- [每天读书半小时] 2015-6-10 《内向者优势》
- [每天读书半小时] 2015-6-12 Servlet / JSP
- [每天读书半小时] 7/8 《spring实战》
- [每天读书半小时]6/29 - 30 OpenStack企业云平台架构与实践
- [每天读书半小时] Java RESTful Web Service实战
- 【每天读书半小时】7/1 - 7/3 JAVA网络编程
- 设计模式读书体会
- 设计模式读书感悟
- 每天提前半小时
- 每天半小时学英语
- 2015年11月19日 每天半小时学英语
- 2015年11月18日 每天半小时学英语
- 2015年11月20日 每天半小时学英语
- 2015年11月23日 每天半小时学英语
- grails的save方法总是没有成功save数据
- 实现需要进行两步都成功的操作才算成功
- BZOJ 1855 [Scoi2010]股票交易 单调队列优化DP
- 学会给你的笔记本电池换“芯”
- Git工作流指南
- [每天读书半小时] 2015-6-8 设计模式
- 常用链表排序算法
- PHP中$_SERVER的详细参数与说明
- 关于mysql_free_result和mysql_close的解惑
- MapReduce的Shuffle过程介绍
- POSIX条件变量
- QQ互联OAuth2.0 .NET SDK 发布以及网站QQ登陆示例代码
- PowerDesigner-使用总结
- 吞吐量与响应时间的关系