2008年5月12日星期一

重读设计模式(Design Patterns)

摘要:该看懂的时候没看懂。

从扉页上的记录看,已经买了两年了。想起刚买的时候,兴冲冲向达哥显摆的情景。当时又从他那弄到两本书,一本是《编程珠玑》,一本是《敏捷软件开发》,前者看完了,后来又看了一遍。后者只看了开头和结尾,中间挑着看了点。对这本Design Patterns小字,首先腹诽一下机械工业出版社:那么小的字,那么薄的纸!那一阵出的书都是这副德行。感觉性价比高的还是电工和清华。

这本书算来集中精力攻坚了三次。第一次,刚进实验室,有个师兄的论文就是这个。所以看的很有动力,不过也只看完了结构型模式,并且还是一知半解。英文的确限制了理解,书本身写的也晦涩,开始觉得没什么,后来发现读本通俗的书可以省下大量的时间。下了很多资料,其中有个是武大同龄人写的,很佩服,人家现在也在香港写siggraph了。

第二次,是下学期上软件结构,有这方面内容,看《Headfirst Design Patterns》,那本书写的很好,但是时间紧,就抓着看了有三天,很多东西看的很有趣,不用就忘光了。

第三次,这学期,同学那看到了《大话设计模式》,中文的,写的很有趣,就借来一本看看。长期的积累,对于其中的代码,竟然能够一口气读下来也没觉得困难,觉得似乎本来就应该是这样啊。参照着原来的那本原版dp。一下子全啃下来了。

以前老师说书是先越读越厚,然后越读越薄。自己这第一个阶段算是读下来了,第二个阶段什么时候结束?我也不知道。

总结,坚持不放弃,最终读出来了是不错,可是中间绵延了两年,为什么呢?就算是书难懂,当初坚持肯,多花时间也应该是能够读出来的,如果早就读出来了,那么在这两年的就可以少走很多弯路,体会其中的妙处。

现在这个问题依然存在着,数学的,算法的,多长时间没有完完整整的读完一本技术书籍了?能指望未来某一天因为某种契机而对这些知识突然顿悟么?应该抽出精力解决了,人生没有那么多的两年。

附:HDP里面记录的原则OO Basics
Abstraction
Encapsulation
Polymorphism
Inheritance

OO Principles
Encapsulate what varies.
Favor composition over inheritance.
Program to interfaces, not implementations.
Strive for loosely coupled designs between objects that interact.
Classes should be open for extension but closed for modification.
Depend on abstraction. Do not depend on concrete classes.
Only talk to your friends.
Don't call us, we'll call you.
A class should have only one reason to change.

没有评论: