设计模式......从哪里开始? (一些真实世界的样本)

时间:2010-09-21 15:42:21

标签: .net design-patterns

我对设计模式概念不熟悉。
C#是我的主要编程语言。 (我不时使用VB)。我不想写一些不灵活,不可扩展和错误的草率代码 每当我看到一个设计模式在运行时,我就会喜欢它背后的逻辑并理解它,但不幸的是,我在我的项目中实现它们时遇到了麻烦。

你知道,有很多设计模式(我认为120多种),当我想决定使用哪一种时,我就会迷失其中。 当谈到使用它们时,我不知道该选择什么 我从教程中获得的是一些相当简单的代码片段,远离生产环境。除了 DDD模式,我已经设法好好学习它,因为它至少有2本好书和很多资源。

现在我的问题:
有什么地方我可以找到一些使用各种设计模式的真实样本吗?至少有一些“更实用”的样本。你知道我能在哪里找到其他图案的书籍/样本/资源吗? 感谢。

8 个答案:

答案 0 :(得分:11)

我从Head First Design Patterns书开始。它并不像其他一些书那么复杂,而是一种学习经验而不是参考。

在我看来,从头开始学习要好得多。 Head First 书籍非常适合以有趣的方式呈现材料,并且能够很好地保持您的兴趣。本书还尝试将每种模式与伪现实生活中的例子联系起来。他们的例子可能与你正在做的事情无关,但他们至少处理与现实世界问题相同类型的问题(我认为第一个例子涉及编写鸭子模拟视频游戏)。

Head First Design Patterns 专注于用尽可能多的模式填充你的大脑,这样你就可以识别你何时处于使用状态并且装备精良足以至少开始。这是一个特定的参考,如GoF书可能会派上用场。

但是,请记住,Head First书籍通常专注于完整的初学者。在你达到特定主题的中间阶段后,他们的书籍并不能成为好的学习材料。

答案 1 :(得分:9)

我仍然觉得original gang of four Design Patterns book是了解这一点的最佳方法。重点不在于使用特定语言或特定地点的模式,而是真正描述模式存在的原因。

一旦你真正理解为什么模式存在(而不仅仅是它们如何工作),在你自己的生产代码中使用它们是很自然的。

答案 2 :(得分:2)

从GoF模式开始。 ISBN 978-0201633610 设计模式:可重用的面向对象软件的元素

答案 3 :(得分:2)

对设计模式的理解伴随着时间和经验。除非你非常有才华,否则一开始你可能会编写可以更高效地构建的代码,你甚至都不会注意到。不要太担心。

设计模式的东西是学习看到他们的好处。图案的特定形状通常具有非常明确的原因。一旦你弄清楚为什么组织代码是有益的,那么学习使用模式很容易。提出问题,设置假设,进行实验,看看你是否正确。

对于阅读,我建议Design Patterns Explained并且Matthieu建议的SourceMaking网站也很好。

答案 4 :(得分:1)

本网站有一个很好的经典模式列表和其他相关主题,例如:SourceMaking

PS:我一直担心这个网站有没有发布这些信息的权利。重构部分是Martin Fowler书的副本,但我从未发现任何明确的参考。

答案 5 :(得分:0)

阅读Martin Fowler的企业应用程序架构模式:

http://www.amazon.co.uk/Enterprise-Application-Architecture-Addison-Wesley-Signature/dp/0321127420

还为企业架构应用程序:

http://www.amazon.co.uk/Microsoft-NET-Architecting-Applications-PRO-Developer/dp/073562609X

两者都很好。后者在Martin Fowler的书中有一些.NET模式的例子。这两本书都解释了何时使用给定模式是好的。

答案 6 :(得分:0)

互联网上有无数的例子你需要做的就是搜索。就书籍而言,我建议"Design Patterns: Elements of Reusable Object-Oriented Software"

享受!

答案 7 :(得分:0)

我发现有帮助的C#特定书籍是:

C# 3.0 Design Patterns