去年夏天在书店里对着PoEAA琢磨了一下午,觉得消化不了,最终没买。昨天终于买回来开始看了。大概是因为做了97的项目,在luli搭建的框架下模仿,积累了一些经验,这次读起来就能找到门了。
设计模式的书都像《红楼梦》一样,自己没有经历,看也白看。Gof的那本,本科第一次翻,像遇到天书一样。大四又看,对工厂模式产生共鸣,高兴得手舞足蹈。后来又经历了一个四处套用的阶段,写了不少蹩脚的尝试。就在自以为已经有谱的时候,有次在实验室讲座,翻到单例模式的章节(我以为这是最容易理解的模式之一),才发现精彩的后半部分以前被我忽略了……薄薄的一本,这么多年下来还是没有完全吃透。
我承认,啃PoEAA就是为了赶潮流,用C++开发科学算法软件不一定用得上。嘿嘿,像“Domain Model”和“Unit of Work”这样的词在圈子里逐渐成了常识概念,和朋友聊天经常遇到,不好意思总让别人给我画UML图解释。
模式就是招数。面向对象语言提供了一大堆兵器,比如封装、继承、重载、虚函数等等。遇到某些常见问题,怎么组织这些语言特点,设计系统的构架呢?高手把经验提炼出来,就形成设计模式,我们这些笨人 只要照着《九阴真经》出招就好了。当然,别指望三天就变成高手,太着急会走火入魔的,编程基础是修炼的第一必要条件,如果连虚函数基本原理都不明白,怎么 指望掌握工厂模式呢,只有不断实践才能体会经典的奥妙。