0.1 前言:
想系统的学习设计模式,选择了程杰老师所著的《大话设计模式》,此书写的十分通俗易懂,每篇都是以聊天的形式逐渐演进代码设计,非常有趣。在这里打算写个系列的blog巩固自己的学习。侵删。
0.2 一个非常有意义的比喻:
对于设计模式的意义我一直非常的不理解,直到我看到了书中这样的一个形象地解释,我觉得这个解释非常有意义,所以决定先写在这里。
曹操想写诗,于是写下了一句诗:“喝酒唱歌,人生真爽”。于是工匠刻板印刷,打算流传百世。
这时曹操觉得这句诗写的有些不妥,就改成了“喝酒当歌,人生真爽”。然后工匠扔了前面的刻板,重新刻板印刷,打算流传百世。
这时曹操觉得这句诗还是有些不妥,就改成了“对酒当歌,人生几何?”。然后工匠扔了前面的刻板,重新刻板印刷,打算流传百世。
这时曹操觉得还是有些…
…
这个故事可以一直写下去。简直就是产品演进的缩影。在这个过程中我们看到了“可怜”的工匠,一版一版的重做,简直累死。这里缺少的是我们后世知道的极大提高生产力的“活字印刷”。有了“活字印刷”,除了要修改的字之外,其余工作不会白做、没有浪费,岂不妙哉。
程杰老师在这里做了总结:
- 要改,只需要改要改之字,此为可维护
- 这些字并非用完这次就不用,完全可以在后来的印刷中重复使用,此乃可复用
- 如果要加字,只需要另刻字即可,这是可扩展
- 字的排列可以竖着排,也可以横着排,此时只需要将活字移动即可,此时灵活性
面向对象的编程语言最小单位是类,当把类的意义代入到上述的“活字”中时,对于愚钝的我而言,不亚于豁然开朗。
所以觉得这个比喻非常有意义,在这里做以记录