16年时买了《设计模式 可复用面向对象软件的基础》,当时草草学习了一遍,讲真,到现在除了对于记得设计模式的理念、模糊的还记得创造、结构、行为的划分维度,还有就是实际编码中经常用到的几个模式,其他的可能只能模糊的想起名字;甚至于对于享元、桥接这些模式,至今还没有太好的理解。
最近看源码看得比较多,也经常有机会实践和反思设计层级的代码,设计模式这块的体悟不少。近来刚好准备把这本书再翻出来过一下,结合平时源码的阅读好好温习一下的。本来还有计划准备再入手几本设计模式方面的经典书籍,今天在知乎上却看到了这么一个讨论 抛开那些吐槽不论,从中可以看出设计模式相关比较容易出现的问题有:
1.不理解设计模式的实质,套用设计模式
2.不分析实际场景,花费过量时间和人力过度设计
3.很多经验丰富的程序员,因为已经理解了设计模式,认不全设计模式也并没有阻碍到实际工作和设计,所以把设计模式看做是没有必要的东西
我的观点是,设计模式只是过往开发者的一些场景下抽取的经验总结,只是一种处理思路而不应该直接是解决方案。设计模式有助于设计者和其他开发人员进行交流,更有效的书面化表达自己的设计思路,是有学习的必要的。而且,一个人是很难穷尽所有的代码场景,也没有一个很好的分类整理思路去记忆和总结,从设计模式的角度,来归类化整理场景问题的解决思路是一种很有效的办法。