绿林网

Design Patterns经典读后感有感

Design Patterns经典读后感有感

《Design Patterns》是一本由Erich Gamma / Richard Helm / Ral著作,Addison-Wesley Professional出版的Hardcover图书,本书定价:$54.99,页数:416,特精心收集的读后感,希望对大家能有帮助。

《Design Patterns》读后感(一):对各种现象的解决方案

花了一个月时间,把英文版大致过了一遍。由于有一些失败的编程经历,大致还是能够理解作者的用意的。个人喜欢先看motivation,structure和sample code,再回过头看讨论。

有点遗憾的是书中对各个模式的横向对比做得不够。有些地方容易混淆,有些场合的名词太过空洞。或许只有在反复阅读和实践中去领悟吧。

《Design Patterns》读后感(二):经典著作,真棒

之前看过若干本设计模式的书,大都是矫柔造作的例子,长篇累牍的废话,不清不楚的论述。往往翻看数页仍然不知所云,云里雾里。

相较而言,本书对于模式的论述可谓拳拳到肉,酣畅淋漓。所采用的例子也是从现实项目中抽取出来的,更加贴近设计模式的现实使用场景。快哉!快哉!

本以为知识密度如此大的书势必枯燥的紧,但没想到翻看数百页却欲罢不能。

《Design Patterns》读后感(三):很棒的书——学术界和工业界相互促进

刚看完。

这本书貌似也有些争议,但是争议不是太大,主要是泛函编程的支持者,特别是lisp的程序员,意思是大概是很多东西在lisp这些语言里面都很容易实现,没必要搞这么麻烦。不过OO当年成为编程的主流是有原因的。有些软件,例如登火星之类的,就目前看,不是10个lisper就能完成的,还是需要IBM的“人浪”战术。

我感觉这本书棒在当年那个工业界感到迷茫的时候,学术界出来了相应的研究。就今天看,design pattern对工业界的贡献非常大。

对于程序员来说,熟悉熟悉design pattern,起码看别人代码的时候容易很多,而且自己写代码的时候也会注意到结构设计。

记得本科的时候看了个开头,就看不下去了,体会不到内在的意义。最近经受了数百篇论文的压榨,后头来看这些东西觉得很有意思,也没觉得什么地方难以理解。

总之,好书!

《Design Patterns》读后感(四):真不知道看了多少遍我才有勇气跟自己说我算是读过了

真不知道看了多少遍我有勇气跟自己说我算是读过了. 期间也读了些其他讨论OOD的书, 这本算是最"干"的.

更多时候那些模式不是自己刻意去使用的, 要嘛是从别人代码里"读出来的", 要嘛就是自己通过朴素的方法(分析->最直接的实现->重构)"渐渐浮现出来的", 自己刻意去套用的情况只出现在一开始乐此不疲地尝试各种模式的时候.

对我而言, 获益有:

1. 通过识别模式快速了解作者的意图;

2. 方便交流(包括和自己对话), 简化了对"问题-设计-利弊"的描述, 为什么name是pattern的四要素, 一个name包含了太多的信息.

3. SOLID原则记心间, 刻意地去忘掉具体的模式, 让设计原则在背后悄悄的影响着自己在设计实现中的一个个小决定.

《Design Patterns》读后感(五):毁了一代工程师

在支持函数式的动态语言里, 绝大多数design pattern都变的简单直接,以至于你甚至感觉不到它们的存在。

在面向对象的限制之下,敞开的大门不走,偏要爬窗户。

比如strategy pattern的本意是通过composition而非inheritance,使能够在运行时(runtime)动态绑定某对象的成员方法。

就像游戏里某个actor能够在各种attack() 方法之间自由的切换,如使用手枪,手雷,狙。

在动态语言里直接把attack函数赋值给actor就可以了,根本没有什么pattern可言。

在Java/C++里却必须把attack函数包装成behavior object才能赋值给actor。

command pattern也类似,可以参照以下Erlang的message passing。

Google研院的Peter Norvig大叔总结了23个design pattern在lisp/python等函数式语言之下的对应物。

引用如下

=====================================================

16 of 23 patterns are either invisible or simpler, due to:

First-class types (6): Abstract-Factory, Flyweight, Factory-Method, State, Proxy, Chain-Of-Responsibility

First-class functions (4): Command, Strategy, Template-Method, Visitor

Macros (2): Interpreter, Iterator

Method Combination (2): Mediator, Observer

Multimethods (1): Builder

Modules (1): Facade

=====================================================

总结:

Design Pattern揭露了OOP系统本身的不灵活

本文由作者上传并发布(或网友转载),绿林网仅提供信息发布平台。文章仅代表作者个人观点,未经作者许可,不可转载。
点击查看全文
相关推荐
热门推荐