设计模式学习笔记

来源:互联网 发布:面瘫 水肿 知乎 编辑:程序博客网 时间:2024/05/06 04:08
  
最近一段时间看ACE,里面大量用到各种模式.不由得想起前几个月自己学习设计模式得情景.发现当时的不少认识都是错的.现在把此时的认识记录下来,等过两年真正进入工作岗位之后再来看自己现在写的内容,一定很有趣:)
先写写关于选书的事.最开始选的自然是GOF的那本经典著作.不过那本书果然向传说中的那样有很重的学院气(或者说词句晦涩:) ),很艰难的看了几章.幸好此时好友苍穹给我提出好的建议
浮生三笑
设计模式这本书怎么呀, 
翼划苍穹 13:06:51
全名是什么?
中文外文的?
浮生三笑 13:07:18
四人帮那本
   
翼划苍穹 13:08:15
不要看那本书,那是一本好书
翼划苍穹 13:08:22
茅盾吧?
听我跟你说。。。
浮生三笑 13:08:21
好的
 
浮生三笑 13:09:10
我还以为你打错字了 : )
 
翼划苍穹 13:09:38
那本书是第一次(开天辟地第一次)提出了23种设计模式,作者就是这23种设计模式的最原始的提出者,所以从这个角度说,这是一本具有“划时代”意义的好书,
但是
翼划苍穹 13:13:13
后来,越来越多的人渐渐的熟悉了设计模式,在很多“超级大师”对这23种设计模式有了深入的理解后,这些“超级大师”的讲解会比那本书的作者的讲解更生动、更容易理解,而且给出了23种设计模式的更广泛更具体的应用范例(就算是扩展吧),所以现在要看设计模式,就不要再看“原始作者”的作品了,看一看其它人的书更好
浮生三笑 13:13:39
比如说
 
翼划苍穹 13:15:03
比如说:
《java与模式〉
这本书虽然是“java”与模式,但是模式本身是与具体语言无关的,而且这本书写的深入浅出,一上午你就能看好厚的页数呢
浮生三笑 13:15:27
好的,我去找找这本书
 
翼划苍穹 13:15:38
还有《敏捷软件》,这本“震撼大奖”书籍讲的更是经典之极
翼划苍穹 13:15:55
他很深入,又非常易于理解啊
感谢苍穹,在我学习的道路上不断的给我这些宝贵的建议.我认为在这里苍穹讲得是很正确的,被誉为经典的书,不一定都是适合学习的书或者说适合初学者学习.
然后我选了《敏捷软件开发:原则、模式与实践》这本书,果然是一本不可多得的好书.里面对模式的讲解异常清晰,自然.在此期间还看了<<设计模式精解>>这本书,也是一本适合初学者的书,不过个人认为离经典尚远.
 
个人认为学习模式的过程可分为三个阶段:
一 理解模式
二 运用模式
三 提出新模式
 
第一阶段的学习是比较容易的,就是记忆一些常用的模式的实现,并且理论上认识一下应该用在什么地方.
本来设计模式就是作为程序员中的一种行话,就像学说话容易,但要学会在什么环境下改说什么话就困难了.第二阶段就是自己学会运用设计模式.纸上得来终觉浅,以本人有限的实践经验来说要突破这一阶段几乎是不可能的.比如说书里面一直强调封装变化,可我连变化通常是什么都不清晰,这叫我怎么封装.这些通常都是要丰富经验才能容易的看出哪些部分是”不安定”因素.
<<设计模式精解>>讲到面向对象的初学者也能学会设计模式,我想那仅仅指的是第一阶段的学习.现在困扰我的问题就是在何时运用模式,自己只是简单的在几个简单的小程序中运用了一下几个模式,效果是徒劳的增加了复杂度,因为那些程序太小了,应用模式简直就是画蛇添足.(我在数据结构作业中运用GP和一些模式,结果就是老师看不懂我的程序,自己也化了大量时间在这些作业上,这样无端造成了开发成本和维护成本的增高: ) )
第三阶段,仅仅是对出于对每个模式名字前面的中括号中的人名的钦佩.他们根据自己多年的经验提出了那些使用广泛的模式.
 
个人认为学习ACE对学习模式很有帮助,那种看着在一个实际项目中大量运用模式,这些运用不是为了讲解什么是模式而给出来的那种经过加工的例子,而是确确实实的优秀的,广泛运用的项目.
原创粉丝点击