我已经阅读了大约4-5本关于设计模式的书籍,但我仍然觉得我在设计模式方面还没有接近中级水平?
我应该如何学习设计模式?
有关于设计模式的好书吗?
我知道这只会来的经验,但必须有一些方法来掌握这些?
我已经阅读了大约4-5本关于设计模式的书籍,但我仍然觉得我在设计模式方面还没有接近中级水平?
我应该如何学习设计模式?
有关于设计模式的好书吗?
我知道这只会来的经验,但必须有一些方法来掌握这些?
当前回答
我推荐HeadFirst DesignPattern。阅读书本是不够的,在吸收了这些概念之后,你需要为你脑海中出现的许多问题找到答案,并试图找出这些模式在现实生活中的应用。我也在做同样的事情,开始问问题,即使这些问题看起来很傻。
其他回答
你读过Allan Shalloway写的《设计模式解释》吗?
这本书与其他设计模式书籍有很大的不同,因为它并不是一个模式目录,而是主要介绍了一种分解问题空间的方法,可以很容易地映射到模式。
问题可以分解为两部分:共同的和不同的。一旦完成了这一步,我们就可以将常见的内容映射到接口,并将不同的内容映射到实现。从本质上讲,许多模式都属于这种“模式”。
例如,在策略模式中,常见的事物表示为策略的上下文,可变部分表示为具体的策略。
我发现这本书与其他模式书相比非常发人深省,对我来说,阅读电话簿的兴奋程度是一样的。
I would think it is also difficult to study design patterns. You have to know more about OOP and some experiences with medium to big application development. For me, I study as a group of developers to make discussion. We follow A Learning Guide To Design Patterns that they have completed the patterns study. There are C# and JavaScript developers join together. It is fancy thing for me is the C# developer write codes in JavaScript and the JavaScript developer do the same thing for C# codes. After I leave a meeting I also research and read a few books at home to review. The better way to understand more and remember in my mind is to do blogging with examples in both C# and JavaScript in here http://tech.wowkhmer.com/category/Design-Patterns.aspx.
我建议首先在去了解每个设计模式之前请先了解模式的名称。此外,如果有人知道这个概念,请解释并给出一个例子,不仅是编程,而且是阅读世界。
例如:
工厂方法:
阅读世界:我只要给钱5美元、10美元或20美元,它就会生产出披萨,而不知道它是如何生产的,我只会得到一个小的、中等的或大的披萨,这取决于我投入的钱,这样我就可以吃或做任何事情。
编程:客户端只需将参数值$5,$10或$20传递给factory方法,它将返回Pizza对象。因此客户端可以使用该对象,而不知道它是如何处理的。
我不确定这能帮到你。这取决于与会者的知识水平。
我不知道哪本书最好,但纯粹主义者可能会说《设计模式:可重用面向对象软件的元素》
至于我个人最喜欢的,我喜欢O'Reilly出版的Head First Design Patterns。它是用对话的口吻写的,很吸引我。当我阅读它时,我同时检查了我的源代码,看看它是否适用于我所阅读的内容。如果有,我就重构。我就是这样学会责任链的。
练习-练习-练习。
我认为您需要检查一些您作为开发人员遇到过的问题,当您因为另一个设计更改而不得不第十次修改代码时,您会感到非常紧张。你可能有一个项目清单,你觉得有很多返工和痛苦。
From that list you can derive the scenarios that the Design Patterns intend to solve. Has there been a time where you needed to perform the same series of actions on different sets of data? Will you need to be able to future capability to an application but want to avoid reworking all your logic for existing classes? Start with those scenarios and return to the catalog of patterns and their respective problems they are supposed to solve. You are likely to see some matches between the GoF and your library of projects.
我推荐HeadFirst DesignPattern。阅读书本是不够的,在吸收了这些概念之后,你需要为你脑海中出现的许多问题找到答案,并试图找出这些模式在现实生活中的应用。我也在做同样的事情,开始问问题,即使这些问题看起来很傻。