学习/实现devise模式(适用于新手)

我是一个困惑的新手和爱好者程序员试图抓住这个,所以请原谅我,如果我的问题是有点closures或没有太大的意义。

我看到很多关于使用devise模式的问题,我想知道是否有人有足够的资源来学习和实现devise模式? 我了解一般的想法,并知道如何/何时使用他们几个(单身,工厂方法),但我知道我错过了。

(为了以防万一,我偏好的语言是C#,但我可以从其他语言的示例中学习)

首先devise模式

替代文字

和devise模式维基百科页面是初学者最好的资源。 FluffyCat是Java和PHP中devise模式的另一个很好的免费在线资源。

“ 四人帮”是后来去的地方,但是还是比较先进的,所以我等到你对其他资源有一个很好的把握。

devise模式是伟大的各种原因:

  1. 给你一个解决常见问题的开始。
  2. 为开发人员提供了一个词汇来讨论解决问题的一些非常紧凑的方法。
  3. 当与了解devise模式的开发人员合作并在解决scheme中使用devise模式时,他们会更快地理解解决scheme。

但是,当你的目标只是学习devise模式,我认为你错过了基本面。 所有的devise模式都基于更普遍的原则。 高凝聚力,低耦合开闭原则,DRY,Liskovreplace原则等。对于这些基础知识,我会按照以下顺序阅读以下书籍:

  1. 首先面向对象的分析和devise(首先)[插图](平装本)
  2. 应用UML和模式(精装)
  3. C#中的敏捷原则,模式和实践(Robert C. Martin系列)(精装)

之后,你已经准备好了四个devise模式的基本帮派

  1. 首先devise模式(首先)[图](平装本)
  2. 圣经
  3. 一个不错的网站(不要买任何东西,这是不值得的) http://dofactory.com/Patterns/Patterns.aspx (这个网站的一些实现值得讨论

下一步:

  1. 企业应用架构模式(Addison-Wesley Signature Series)(精装)
  2. POSA书籍

永远记住:模式不是目标!

我想补充一点,“四人帮”的devise模式书对于那些对devise模式非常感兴趣的人来说是一本圣经。

我的提示:

从不同来源读取很多有关模式。

试图强制尽可能多的模式到你写的所有代码中,因为这一点不会给出好的结果。 相反,让信息暂时留在你的脑中(阅读:几个月)。

突然之间,你会发现自己陷入了一个问题或者一段代码,你会隐约记得你已经看到了一些可能解决这个问题的方法。 现在是时候查看你正在考虑的模式的细节,并尝试应用它。

无论如何,这就是我的工作。

devise模式

本教程网站包含以下小节

  • 每个devise模式的意图
  • 真实世界结构的devise模式
  • 问题陈述
  • 详细讨论这个问题
  • 关于如何到达一个模式的清单
  • 在到达模式时的拇指规则
  • 包含C#,C ++,Delphi,Java和PHP的devise模式代码片段

本网站还包含反模式UML重构指南

Bruce Eckel有一本关于devise模式的书 ,虽然它是Java,但是它的所有书都很棒。 最好的是,他们是免费的!

devise模式的C#透视图的C#3.0devise模式 。

替代文字http://oreilly.com/catalog/covers/9780596527730_cat.gif

一本介绍性的书,我发现有用和写得很好的是Alan Shalloway和James Trott(Addison Wesley)的devise模式解释 。

替代文字http://ecx.images-amazon.comhttp://img.dovov.comI/5172GGH8QHL._SL500_AA240_.jpg

不要从“ 四人帮”开始,因为它不是一本介绍性的书籍。

我build议看一下Jean Paul Boodhoo的关于DNRtv的揭秘devise模式的五倍体(?),下面提供的url。 这些video广播涉及Singleton,Abstract Factory等等,不同之处在于你可以在他讨论这个理论时看到他的代码。 在一个下雨的工作日很好吃午餐。

http://www.dnrtv.com/default.aspx?showNum=63 http://www.dnrtv.com/default.aspx?showNum=65 http://www.dnrtv.com/default.aspx?showNum= 68 http://www.dnrtv.com/default.aspx?showNum=71 http://www.dnrtv.com/default.aspx?showNum=92

上述评论的注释。

GOF模式的快速参考

这里是一个很好的地方,你可以开始dofactory.com/patterns/patterns.aspx – 你可以find每个模式的链接,以及相应的实现。

如何,记住这些是GOF模式。 一旦在OOAD中获得足够的专业知识,您可能还需要阅读和理解高级模式。 首先devise模式是一个好的开始,在取得一些进展之后,请使用Martin Fowler的企业应用程序体系结构模式。

应用devise模式 – 思维过程

另一个主要方面 – 应用devise模式与知道它们一样重要。 阅读这些文章也可以帮助你。

应用devise模式第一部分

应用devise模式第二部分

希望这可以帮助

首先devise模式是一个很好的像其他人已经注意到的。 除此之外,当然还有原书和C#devise模式。 也有好的网站已经提到。

除了自学之外,我还是认真的推荐你们当地的模式学习小组 。 请参阅“devise模式的学习指南”,了解其中的模式。我们这样做,我可以诚实地说,我不会像现在这样理解。 与其他感兴趣的人每周一次的会议,让你惊讶地学习抽象像devise模式的纪律。

快乐的学习!

在花钱买书之前,我会推荐维基百科优秀的devise模式页面。 也可以用于“devise模式屏幕录像”的Google,或在YouTube上search“devise模式”。 获得相同的信息呈现不同的经常帮助一分钱下降。

“ 四人帮 ”是最知名的模式的权威性文本,但不是很容易阅读,而C ++的例子并不是每个人都喜欢的。

Head First Design Patterns文本更容易访问,但只包含Gang of Four模式的一个子集。

最重要的是要了解特定模式的用途和用途。 然后在网上search您select和实验的语言的实施例子,直到您“得到它”。 在进入下一个模式之前,先了解一个模式。 每个人都比别人更了解某些模式(还有数百个不太知名的模式)。

只是继续堵塞。

企业应用架构模式(精装)Martin Fowler

重构模式(精装)由Joshua Kerievsky

持续集成:提高软件质量和降低风险(平装本)Paul Duval et.al.

超越软件架构:创造和维持赢得解决scheme(平装本)作者:Luke Hohmann

devise模式就像任何库函数一样,读取它们,然后当出现问题时,devise模式将出现在“Toolchest”中。 原来的“四人帮”devise模式之后,有许多devise图案的书籍都被图案化了。

对于任何程序员来说,我认为这和Fowler的“重构”书是绝对的最低要求。

对于网站来说,一个非常好的网站是来自ajaxian网站的开发者之一的http://ajaxpatterns.org

原始devise模式书是所有程序员必读的。

这是一本关于各个层面的优秀书籍:布局,清晰度,洞察力,深度。 这是你第一次阅读封面的伟大的书籍之一,然后用作参考,直到你从字面上知道它里面。

你可以从维基百科页面开始,但也可以用伟大的书籍来对待自己。

由Craig Larman 应用UML和模式 。 从分析的基础开始,devise并使用一个简单的案例场景。 以简单的方式介绍大部分基本模式。

如果你阅读有关devise模式,你会注意到Java似乎有一些实现。

看看任何框架的来源,你可以收集有关devise模式的信息。 就我个人而言,我不认为它们完全符合我的任何代码,有时书籍和教程中的例子似乎有点理想化,特别是对于单独的编码器。

devise模式不适合懒惰的编码器。

对于我和我的同事来说,学习模式研究小组的devise模式。 他们准备了一个我们应该学习的每个模式的清单,并且还有一些开放性的问题,在小组中进行更多的讨论。

我还build议,一旦你阅读头第一个devise模式, 重构模式就会变得非常糟糕。

注意:代码示例是用Java编写的,但应该与C#示例非常相似。

对于那些经验不足的人来说,深入研究devise模式并没有什么意义。 知道它们的存在是很好的,但是在这一点上,你应该更多地关注其他的东西,而不是仅仅学习devise模式。

它们在问题的背景下很有用 – 作为新手开发者的一个概念,除了知道你应该在何时何地使用它们之外,它们实际上并没有太多的实用价值。

编辑澄清 – 许多devise模式是在一些领域发现的问题的结果。 一个新的程序员很难期望(IMO)知道一些问题的devise模式。 正如我们在CS研究中遇到的一些小问题一样,我们需要了解我们可以对模式及其好处做些什么事情,但是当一个人仍然在build造hello world或发现stl时,对devise模式没有多less实际的需要。 模式很好。 但他们不是银弹。

(既不是CASE(工具),也不是UML,SCRUM也不是,也不是TDD,也不是STL,也不是Java,也不是XML)。这些都是我们专业的方面,把这些话题当作第二个未来是天真的。

模式包括高级词汇程序员用来谈论抽象devise。 如果您正在重新使用抽象解决scheme,那么按名称来引用它是有帮助的。 如果你发明了一个模式,那么专业的做一下检查,以确定它还没有被命名。 如果它已经被命名,那么描述可能是有用的。

在你编写代码之后,你会发现自己写了一些类似于你之前编码的东西。 这是一种模式。 即使是微小的模式,也值得注意。 有更好的模式吗? 你看到一些微小的模式合作解决一个更大的问题? 那么下一次,当你想要解决更大的问题时,整个模式就会成为一个单一的块。 充实代码的细节成为机械。

你注意到的模式越多,编程就越容易,而且你会越来越欣赏其他程序员制作的一些最大最好的模式。 尝试掌握MVC模式。 无论如何,即使是在微小的devise决策中,各种各样的变化也会显现出来。

一旦你理解了这个概念,通过Eclipse源代码或者devise,很多这些模式的很好的例子(Gamma是devise师之一)并不奇怪。

我发现这个网站上的devise模式文章真的很容易理解

C#中的devise模式