"GOF"的“设计模式”应该用“工具书”来形容它更为恰当,因为它并不适合初学者看,或许,等你已经做过了很多项目,而且在项目中已经体会到了使用设计模式的好处,再回头来看那本书,那时才是时候。
如果你没有具备以下的条件,那么请你不要去学“设计模式”
1. 工作至少一年;如果没有,你无法理解设计模式的妙处。
2.工作中使用的编程语言必须是面向对象的;设计模式是以面对对象的特征为基本的,如果不是面向对象,也不存在设计模式这个概念了。
你可能有过如下的经历,
当程序需要改动来满足新的需求时,你会发现每次的改动都几乎把之前的代码全部重写。
首先,重复以前工作是很烦,也没有必要的事,
其次,重写出来后的代码也能会产生更多的BUG,
再次,重写出来后的程序又要经过重新测试。
总是就是浪费精神兼时间。
所以聪明的人们便在想着:“能不能让我的程序在每次满足新的需求时,都让我的程序改动最小,甚至不改动,或者,只需添加额外的一些代码即可?”
于是人们便想尽各种方法,在进行设计的时候,把“变化”或“不变化”的部分分别抽出来,把这两部分用一个
“变化点”来关联起来。
这样当下次“变化的部分”改动时,便能把改动减少到最小了。
不要太过于咬文嚼字地去理解“设计模式”,“设计模式”是通过变化而体现出来的(对程序不断地修改,增加代码,而发觉出使用设计模式的好处),“设计模式”本身就是变化的,所以不要去用所谓的“设计模式”来照样画葫芦,套到自己的程序上面去,那样你会已经得“过度使用模式病”,很多初学者都会得那样的病,所以,
当你不知道使用哪种“设计模式”时,那就把所有的书都抛开,用自己的方法来做,做错了也不要紧,
下次对代码进行重构时,你就会发现问题,从而解决问题,这会让你学到更多。
(草稿。待续。)