学习设计模式有几周了,写一点学习感想吧。
以前读书时,尚不知设计模式为何物,只听见侯捷老师说是非常棒的东西(而且牢牢记住了他对中文版的评价,所以我绝对不会买翻译本,一个字都不会看),后来这四个字慢慢热起来,讨论的文章也多起来,印象中流传最广的一句话就是“没有十年的功力绝对不要碰设计模式”,所以我始终也没弄明白什么是设计模式,总觉得是很玄换很高深的玩意。
现在终于有了一些粗略的理解:
设计模式,就是解决一些重复出现问题的现成套路(我不喜欢用“IT化”的预言说“既有的解决方案”,估计那样说我自己也不懂到底说了什么)。
一个模式(每个套路)针对一类问题,提供了现成且成熟的办法,以及关于此方法的许多信息,例如,该如何实现,实现之后有什么影响,利弊如何,会带来什么问题。
这样,开发人员在遇到某类问题时就不必作重复劳动,他们可以直接考察是否存在现成的模式,如果存在,应用之后有哪些影响,如果评估之后决定采用,只需要照章办事把现成的办法拿过来用就好了,节省大量的时间,而且方案的稳定性和扩展性都很好——模式是提炼出来的,经过考验的,成熟的套路。
多种模式可以混合使用,在混合使用时,必须先找出最外层的(Seniormost)模式——它会影响和决定其他模式的应用场合(context),再找出次外层模式,以此类推。
模式不是万能的,也并不总能完美地解决问题,因此每种模式都包括了Sequence(影响)的信息。在应用模式之前,我们必须先分析问题的情境(Circumstance),并评估模式的影响,再决定是否采用模式,采用哪一种模式。
也就是说,理解、分析模式,和实现模式一样重要。

发表评论