学习设计模式已经有很长的时间了..
看了好几本这方面的书,但成效不大.写起代码,依然与过去一样.
学习模式的经历过的四种境界:
[quote]1.没学前是一点不懂,根本想不到用设计模式,设计的代码很糟糕;
2.学了几个模式后,很开心,于是到处想着要用自己学过的模式,于是时常造成误用模式而不自知;
3.学完全部模式时,感觉诸多模式极其相似,无法分清模式之间的差异,有困惑,但深知误用之害,应用之时有所犹豫;
4.灵活应用模式,甚至不应用具体的某种模式也能设计出非常优秀的代码,以达到无剑胜有剑的境界。[/quote]
我没有去有意识地去使用模式,这可能也是我到现在没有学好模式的一个原因吧.就没有误用的机会.
现在对大多数模式也有比较好的认识和理解.
就差怎么去运用了.
其实运用不是很大的问题,关键的问题是怎么去发现使用模式的地方.
说说模式的一些基础知识.
模式的概念:
模式有很多的概念:常见问题的一种解决思路.一种解决方案
但模式有三个要素:特定问题,约束,方法.
模式是在一系列开发原则下实现的
[list]
[*]1.针对接口编程,而不是针对实现
[*]2.开闭原则
[*]3.找到变化并封闭之
[*]4.里氏代换
[*]5.迪米特原则
[*]6.........
[/list]
在面向对象的世界里,我们会天天看到这些原则,心里也默默地告诉自己,写程序得最大化的遵循这些原则.
但具体怎么去做,就得看看模式了.模式就是具体的招式,而那些原则就是心法.
学习模式更好的体验这些原则,遵循这些原则.
就像小学生时代,老师讲,两数相加,逢十进一.....基本的计算原则.
但我们得去通过大量的练习去熟透这些原则,达到现在心算的能力.
看了好几本这方面的书,但成效不大.写起代码,依然与过去一样.
学习模式的经历过的四种境界:
[quote]1.没学前是一点不懂,根本想不到用设计模式,设计的代码很糟糕;
2.学了几个模式后,很开心,于是到处想着要用自己学过的模式,于是时常造成误用模式而不自知;
3.学完全部模式时,感觉诸多模式极其相似,无法分清模式之间的差异,有困惑,但深知误用之害,应用之时有所犹豫;
4.灵活应用模式,甚至不应用具体的某种模式也能设计出非常优秀的代码,以达到无剑胜有剑的境界。[/quote]
我没有去有意识地去使用模式,这可能也是我到现在没有学好模式的一个原因吧.就没有误用的机会.
现在对大多数模式也有比较好的认识和理解.
就差怎么去运用了.
其实运用不是很大的问题,关键的问题是怎么去发现使用模式的地方.
说说模式的一些基础知识.
模式的概念:
模式有很多的概念:常见问题的一种解决思路.一种解决方案
但模式有三个要素:特定问题,约束,方法.
模式是在一系列开发原则下实现的
[list]
[*]1.针对接口编程,而不是针对实现
[*]2.开闭原则
[*]3.找到变化并封闭之
[*]4.里氏代换
[*]5.迪米特原则
[*]6.........
[/list]
在面向对象的世界里,我们会天天看到这些原则,心里也默默地告诉自己,写程序得最大化的遵循这些原则.
但具体怎么去做,就得看看模式了.模式就是具体的招式,而那些原则就是心法.
学习模式更好的体验这些原则,遵循这些原则.
就像小学生时代,老师讲,两数相加,逢十进一.....基本的计算原则.
但我们得去通过大量的练习去熟透这些原则,达到现在心算的能力.