我已经阅读了大约4-5本关于设计模式的书籍,但我仍然觉得我在设计模式方面还没有接近中级水平?

我应该如何学习设计模式?

有关于设计模式的好书吗?

我知道这只会来的经验,但必须有一些方法来掌握这些?


当前回答

你试过《四人帮》这本书吗?

设计模式:可重用面向对象软件的元素

其他回答

有很多很好的例子。我想补充一点:

误用。您不需要故意这样做,当您尝试在初始设计模式匹配中应用它们时,就会发生这种情况。在此期间,您将看到的每个问题似乎都恰好符合一种设计模式。通常,由于某些原因,所有问题似乎都符合相同的设计模式(Singelton是主要的候选)。

你应用这个模式就会很好。几个月后,您将需要更改代码中的某些内容,并发现使用特定的模式并不明智,因为您将自己编码到一个角落,您需要再次重构。

当然,这并不是一个真正的“做了就会在21天内学会”的答案,但以我的经验来看,这是最有可能让你对问题有一个很好的洞察的答案。

我发现,要理解或理解某些模式的好处有点困难,除非理解它们解决的问题和其他(更糟糕的)实现问题的方式。

除了GOF和POSA的书,我还没有真正读过,所以我不能给你其他的建议。实际上,您只需要了解问题领域,我认为许多缺乏经验的开发人员可能无法欣赏模式的好处。这不是对他们的轻视。当一个人不得不首先与糟糕的选择作斗争时,接受、理解和欣赏好的解决方案要容易得多。

祝你好运

练习练习再练习。我认为4到5本书在没有大量练习的情况下是一种过度的阅读练习。我认为,做到这一点的最佳方法是开始使用这些模式重构您当前的项目。或者,如果你没有任何正在积极进行的项目,那么就按照你自己的方式来做,然后尝试重构模式。

如果你没有亲身经历过他们所解决的问题,你就无法充分欣赏他们。请记住,它们不是银弹——你不需要记住它们,并在飞行中努力应用它们。我的意见…

在我看来,阅读设计模式,练习编码的概念并没有真正的帮助。当你读这些书的时候。寻找特定设计模式解决的基本问题,从创建模式开始是最好的选择。2. 我相信你过去写过代码,分析一下你是否遇到了设计模式旨在提供解决方案的相同问题。3.尝试重新设计/重构代码,或者重新开始。

关于资源,你可以查看这些

www.dofactory.com 设计模式:可重用面向对象软件的元素(Addison-Wesley专业计算系列),作者:Erich Gamma、Richard Helm、Ralph Johnson和John M. Vlissides Martin Fowler的《企业应用程序体系结构模式》

1是快速入门,2是深入学习。第3节将解释或应该让你认为你在第2节中学到的东西适用于企业软件。

我的2美分…

设计模式只是工具——有点像库函数。如果你知道它们和它们的近似函数,你可以在需要的时候从书中找到它们。

设计模式并没有什么神奇之处,任何优秀的程序员都能在任何书籍问世之前自己找出90%的设计模式。在大多数情况下,我认为这些书在简单地为各种模式定义名称方面最有用,这样我们就可以更容易地讨论它们。