怎样才算精通「设计模式」?
在互联网领域编程多年,最常听的是「xx语言设计模式」这样的说法,一般说的都是最最常用的、烂大街的名词(观察者、委托、面向对象、MVC……)
记住了很多种模式名字,但是面对新需求的时候,还是不能用「设计模式」的思维展开架构设计(经常是马后炮,程序写了一半才想到应用某个设计模式)
问:怎样才算真正掌握了「设计模式」?行业里有多少人掌握了?(用的明白,讲得清楚)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
剑法的最高境界是手中无剑,心中也无剑。而使用设计模式也是一个道理,心中不曾计划使用设计模式,写出的代码里却处处是设计模式。
设计模式其实就是程序员的世界观,大部分靠经验和实践。并不像算法那样你学了马上就能用的很好。
就好比学了几个商业运营模型就往公司里套一样,那不叫管理,只是学生味的实践而已。
世界观这东西,又怎么能说谁的好谁的多呢。 说多了也不招新人待见,所以就说这些吧。
任何技能都是从模仿开始,写代码尤其如此,所以建议先把所有的设计模式用自己擅长的面向对象语言实现一遍。
写的过程中不甚理解的地方可以不细究,后面在项目中有使用的时候再去细看。
推荐一本设计模式的书《大话设计模式》,国人写的挺不错的。
我觉得自己能写出很多人用的类库基于就等于精通了,其实在我们写代码的过程中或多或少的都使用到了设计模式,只不过自己没留意罢了。写代码不用一味的追求设计模式。符合项目需求易读的健壮的有弹性的代码就是好代码。
设计模式只是前人总结出来的理论,关键还在实践,也就是说即便看书看的很透彻代码写的少还是无用,关键在于静下心来多读源码多反思,重要的自己在底下多练习。
Modern C++里的一段话应该能解决你的疑惑:
所谓精通设计模式,实际上来说就是能够根据开发的实际情况,灵活的去运用各种设计方法,去提高代码的稳定性、可复用性。如果单纯是为了使用设计模式而去使用,结果只是本末倒置而已。比如说你开发一个很小的项目,你非要里三层外三层强行设计模式,好不好用暂且不说,增加了代码的复杂度和维护成本到是真的,把一个简单的类库包装到极致,也没什么意义呀,还是要根据需求来。
不过既然要精通我觉得可能需要以下几点:
读过设计模式的相关书籍,你没读过,别人说一种模式你根本都不知道,谈何精通。这列推荐几本书
《设计模式》GOF版,这个我觉得可以算作是经典。《大话设计模式》适合初学者。
有过很长时间的代码编写的经验,单纯纸上谈兵没有什么意义。
阅读研究第三方类库,优秀的开源类库基本都会使用到很多经典的设计模式。
最后强调一点,设计模式是解决问题的一种方法、手段,不要为了用而去用。