《设计模式之禅》试评
^^^^^^^^^^^^^^^^^^^^
- 作者:臭豆腐[trydofor.com]
- 日期:2010-04-15
- 授权:署名-非商业-保持一致 1.0 协议
- 声明:拷贝、分发、呈现和表演本作品,请保留以上全部信息。
0. 文档目录
^^^^^^^^^^^
[[<=$INDEX]]
1. 综合评论
^^^^^^^^^^^
【一句话总结】
值得一读。比大话系列严谨,比GOF圣经易懂。69块钱,24小时,划算。
【各部分感受】
第一部分,六大原则,及其受用,适用于程序开发也适用于做人做事。
书中有大量生动活泼的故事,有些十分贴切,想必作者费了不少脑汁。
第二部分,对GOF的模式以有趣的方式庖丁解牛了一番,有些很独到。
初学者上手快,已悉者温故知新。有趣味,有过程,有血肉。
第三部分,PK很有特色,巩固知识,加深印象,消食通便。
不打不相识,越打越亲近。条条大道通罗马,风景各不同。
第四部分,合作共赢,综合应用,凝聚开发者的智慧。
重点看需求上下文和程序架构,模式名字已不重要。
附录的23种设计模式类图,是杀人越货之必备阿。
【阅读建议】
每节的【最佳实践】都应当理智阅读,原则也,实践也。
演示代码只是为了说明问题,在实际项目中采用,要斟酌。
建议阅读顺序,四一二三四一。
阅读目标,忘记模式吧,融入场景,心中无刀。
2. 事件考古
^^^^^^^^^^^
【2010年03月12日 五】 看分享,《设计模式之禅》试评员招募
【2010年03月13日 六】 凑热闹,“申请,看看什么是禅”
【2010年03月19日 五】 出结果,直到莹美女分享才知道。
【2010年03月22日 一】 发邮件,“哲思-设计模式之禅-试评员-登记”
【2010年03月23日 二】 收邮件,恭喜您成为华章公司《设计模式之禅》试评员。
【2010年04月02日 五】 第一篇,哲思杨某侠书评出炉。
【2010年04月08日 四】 怕误事,邮件确认:样书已于3月25日寄出,平邮。
【2010年04月15日 四】 样书到,雯美女亲临。
2. 试评计划
^^^^^^^^^^^
设计模式之禅/秦小波/机械工业出版社/ISBN978-7-111-29544-0/545页/69元
试评员约定要在样书到手的两周内出书评,500字以上,发布于网上。
作者学机械的,9年技术,儿子三岁。豆腐学化工的,7年技术,儿子175天。
前辈啊,O(∩_∩)O哈哈~,这书有点啃头,有计划有步骤的耐心嚼之。
尽信书不如无书,豆腐读书,绝对是批判的继承,批判是我思考,不直接反映书的品质。
和买东西一样,挑刺越多,越易成交,满口好好的,可能路过。
白天上班,晚上亲子。整块的时间不多,遂分而治之,评一次为一里程,路标如下。
【C1.1】即第1.1节。(C)hapter,为章节标记。
【P123】即第123页。(P)age,为页数标记。
【BTW】随便说一下。(by the way)
【小结】小小的总结一下。
3. 第一里程
^^^^^^^^^^^
【2010年04月15日 四 18:30】
【书名】禅者,心也。有点玄。要是蝉就好了,知了也。
【封皮】诗经·小雅·鹤鸣 “它山之石,可以攻玉。”
【作者】交行阿,信用卡用他家的,网银有待改进。
【赞誉】很多人很高评价,还有阿福,有点看头。
【前言】挺实在。致谢那段有意思。23种模式都用过,是否存在过度设计。
【C1.1】info隐喻是属性,不应实现Biz行为接口,见仁见智吧。
【C1.2】IPhone的例子很好,‘注意’‘学究’,提示背景和视角。
【C1.3】我单纯,所以我快乐。
【C1.4】很现实的问题,多快好省,服从领导。
【C2.1】继承必须拥有父类的所有属性和方法。private的呢,从哪个角度讲。
【C2.2】OO5大原则之里氏替换,09图灵奖女得主。例子很好,尤其CS那个。
【2010年04月15日 四 21:00】
4. 第二里程
^^^^^^^^^^^
【2010年04月16日 五 18:08】
【P24】表面类型和实际类型,头一次听说,为何不用大众叫法。
【C3.x】DIP,真的是讲了不少。
【C4.1】实例接口,这种讲法,长见识。
【C4.2】星探找美女,不如改成相亲,更有杀伤力。
【C4.3】IBookSearcher 例子不错。
【C5.1】你知道的太多了,所以越单纯越好。
【C5.2】commond通假command?4层含义讲的很透彻。
【BTW】不太习惯,下划线开始的变量。
【2010年04月16日 五 21:30】
5. 第三里程
^^^^^^^^^^^
【2010年04月17日 六 12:11】
【C6.x】开闭原则,拥抱变化,第一思考的原则。
【小结】
六大原则很是受用,程序员进化之必备。例子多样,很大众化。
建议增设第七原则,就是奥康姆剃刀----“如无必要,勿增实体”。
【P59】say()还是不要static了吧。
【P60】构造函数private只是确保了非本类不能new,而不是仅产生一个实例。
【P60】“类中其他方法,尽量是static”,public static 违反LoD,隐患多。
【C7.3】对单例讲的很全面。除了clone外,反序列化也值得注意。
【C7.4】场景假设的好,还普及历史知识,但代码有点不妥。
【P62】countNumOfEmperor,static太糟糕,钰有时会说他是镇,都不用多线程。
【P63】直接 Emperor.say()试试看。
【C7.5】单例会被JVM的GC么?何种情况,理论依据或证据呢?豆腐认为有Ref就不GC。
【C8.1】大话女娲造人的故事比较有趣。
【P67】”其中的’?‘表示的是,... ...“ 没看到代码里使用。言之何物?
【P67】Class.forName(c.getName()).newInstance();为何不直接 c.newInstance();
【P67】使用泛型T,为何要Human强制转换一下呢。
【P77】Map<String,Product> prMap = new HashMap(); 建议HashMap parameterized
【C8.x】GOF说的很好。此节的例子不太恰当,有点为了工厂而工厂。
【C9.x】略读。还是女娲娘娘这块比较有趣,想必费了不少脑筋。
【2010年04月17日 六 15:20】
6. 第四里程
^^^^^^^^^^^
【2010年04月17日 六 18:20】
【C10.1】本小三,纯属虚构。
【C10.2】final防覆盖,这个提示很到位。
【C10.x】模板这块讲的很细腻。记得JIC系统,就问过袜子,如何限定子类行为。
【C11.1】变化是永恒的,Builder+Templet的例子很有代表性,值得研习。
【P108】显式调用Collection的clear(),不仅可避免意外惊喜,还可避免泄漏。
【小结】模板和创建这两节非常好,一个场景贯穿,一气呵成。
【C12.x】用游戏代练类比Proxy,用“审计”点出AOP,本节的看点。
【P146】this.arrayList 改成 thing.arrayList,笔误。
【C13.4.3】冤家是因为final赋值,浅clone可以,深clone曲线救国也是可以的。
【C13.x】电子账单的场景有来路,带有实际业务的影子,比虚构的系列好很多。
【2010年04月17日 六 21:33】
7. 第五里程
^^^^^^^^^^^
【2010年04月18日 日 08:00】
【C14.1】两个“库存情况”。后者应该是”采购情况“。
【P148】“折半采购“少了 stock.increase(buyNumber);
【C14.x】贴近生活,容易理解。
【P170】命令模式通用类图,Client关联Receiver还是Invoker?
【C15.5】原来伏笔在此揭开,算我读的很仔细。
【C15.x】有别于GOF,从新的角度讲解了Command模式。
【C16.x】责任链,全体妇女同志站起来 ... ... 了。
【2010年04月18日 日 09:30】
8. 第六里程
^^^^^^^^^^^
【2010年04月18日 日 13:00】
【C17.x】成绩单大话的很热闹,JDK中例子很多。
【C18.x】略读。策略枚举慎用。
【C19.x】略读。RMI慎用。
【C20.x】如书中所说,太普遍了。研究研究Collection框架有好处。
【C21.x】组合模式这么讲有点晕。树这么整不合适。
【C22.x】先看反面例子,再看注意事项,再研究“暴露狂”。
【C23.1】letterInotoEnvelope() 通假 Into。
【C23.x】略读。应该谈谈JDBC。
【2010年04月18日 日 14:40】
9. 第七里程
^^^^^^^^^^^
【2010年04月18日 日 17:30】
【P307】宽接口,窄接口,讲的很好。
【C24.x】备忘录,有用的东西。注意不同场景下的策略略和细节。
【P317】图25-5,这个类图怪怪的,method首字大写。
【BTW】类图有些没标返回值,图25-6,25-5,25-4。
【P328】双反派,双分派。
【C25.x】以邻居访问为故事讲解的很好。
【BTW】很多方法论,都有很贴切的例子,在生活中活灵活现。
【P340】代码26-13,还是setLiftState(Context.closeingState);好。
【BTW】closeing,openning这两个ing很smilence(笑而不语)。
【C26.x】电梯的例子很好,明了贴切,值得细品。
【C27.x】堆栈计算器,适合学习。
【C28.1】对厂商的分析工具感兴趣。
【P360】工厂是200多个并发,咋没进行线程安全控制呢。
【P365】讲了。
【P369】10万次,多按了2个零 10000000
【C28.x】故事场景不错。对象在内存的大小可以通过成员变量估算的。
【P378】眼中无黑体部分,心中有黑体部分。印丢了,呵呵。
【C30.x】又是一个很有趣的例子,山寨公司。
【小结】23个模式总算过完了,场景设计的很用心,老少皆宜。
【2010年04月18日 日 20:15】
10. 第八里程
^^^^^^^^^^^^
【2010年04月19日 一 20:20】
【C30】PK阿,刺激,类比再对比,是深入了解事物的最佳实践。
【C30.1】第一回合,PK的不错,有点内裤外穿的势头。
【C30.2】第二回合,不太地道,应该工厂PK抽象工厂,工厂欺负Builder。
【C30.x】这么P如何:超人工厂PK抽象工厂,抽象工厂PK建造者于汽车。
【C31.1】场景合适,级别相当,恰到好处。
【C31.2】丑小鸭的例子很好很强大,目前为止最赞的一个,是如何想到的呢。
【C32.1】命令模式在这场PK中状态不好,晕乎乎的,结论很清楚。
【C32.2】压缩对策略有力,对命令不利,容易漂移。
【C32.3】DNS这段PK也到位,买一赠一,看PK,送DNS原理。
【2010年04月19日 一 21:40】
11. 第九里程
^^^^^^^^^^^^
【2010年04月20日 二 09:10】
【C33】各种职业互P,法师对战士。
【C33.1】略读,最佳实践总结了,尤其是抓到耗子就是好猫。
【C33.2】看点是类图和最佳实践,可以扩展下场景应用。
【C33.3】五大高手,阵容强大,从头读到尾,必有收获。
【P474】全书中,代码34-9(好像)是第一个关键字加粗的。
【C34.x】连横合纵,天下一统。要是作为上机考试题如何。
【C35.1】貌似这个例子背景强大,眼睛一亮。过程很Mini。
【C35.x】过程很Mini,点到为止。
【C36.x】行,过,有所获。
【C37.x】规格模式,AND,OR,NOT的结构是看点。
【BTW】SSH曾害我找ssh资料费了不少搜商,简历上也见到最多。
【C38.x】MVC火的不得了,略读。
【小结】一不小心,看完了,回头写总评。
【2010年04月20日 二 11:20】
12. 终于拿下
^^^^^^^^^^^^
好久没这么有压力,有计划,有步骤的读书了。限时读书是个好套路。
免费总是有魔力的。看着柜里间歇冬眠的书,真是非借不能读也。
回顾一下读书过程,9个里程,累计23小时,感觉3个小时一里程效果很好。
书评将要发出,心如跳兔。不是见仁见智,就是贱人贱智,O(∩_∩)O。
有人的地方就有江湖,有评的地方就有争辩,评论员不是什么好差事( ⊙ o ⊙ )。
最后,支持真原创。大家积极修书立传,授业解惑。
回复 徐继哲 2010年04月21日 星期三 06:46