设计模式:什么是新的模式,现有的模式在哪里使用?

时间:2009-09-14 07:15:50

标签: design-patterns

我的某个课程的可选作业。对这两个主题中的任何一个进行30-45分钟的演示/案例研究:

  1. 现实生活项目中现有的设计模式示例:他们解决了什么问题,为什么他们比其他技术更好等等。
  2. 新的设计模式,他们解决的问题,其他设计模式不能等等
  3. 请注意,“新”和“现有”与GoF书和the design patterns listed within有关。

    对于第一个,源代码不是必需的,但它可能是一个加号,因此开源项目将是最好的。

    对于第二种情况,我基本上需要能够为每种模式提供类似于GoF书中的描述,并提供适当的动机,示例等。

    任何人都有一些好主意/指点?

6 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

  1. SVN项目是客户端/服务器模式的一个很好的例子,虽然这更像是一种架构模式而不是设计模式本身,但您可能会发现它很有用(并且它是开源的) 。

    查看设计文档,以及非常丰富的大picture

  2. 访问者模式在Eclipse中广泛使用。一些例子,请查看GEF/Draw2D(布局)或JDT(核心)。 (两者都是开源的。)

  3. 实际上,如果你看看Draw2D或Eclipse的代码,你会发现一大堆使用的设计模式。工厂,复合材料,命令,纪念品(和模型 - 视图 - 控制器,但这又是建筑)。只需抓住一个项目并查找它们,找一些指向documentation的内容。

答案 2 :(得分:0)

有大量的设计模式wiki类型网站 - 仅举几例:

至于一个非常明显的模式Model-View-Controller用于许多应用程序,并且没有关于该主题的原始GoF书籍。虽然NomeN在评论中提及它更多的是一种建筑设计模式,但在设计模式主题的演示中可能值得一提。

Null Object Pattern是另一个常见的,jQuery使用它。当您没有使用其主选择器函数匹配任何内容时,将返回一个空对象(仍具有所有正常函数)而不是'null'。

答案 3 :(得分:0)

您的问题中存在的'新设计模式存在'部分难以回答,因为:

  • 在某些语言的GoF书中列出了设计模式的新实现。例如,观察者模式可以使用委托以.NET编写。

  • 存在不同类型/种类的设计模式,具体取决于它们所应用的层。例如'存储库模式' 例如,这是一种不属于GoF书籍的模式,因为它作用于更高级别/层,然后是该书中列出的层次。这是在应用程序的“域层”中使用的模式。就像“规范模式”一样。

答案 4 :(得分:0)

没有新的设计模式。四人一书中的模数(模数为几)非常正交且完整。有很多其他类型的模式。

答案 5 :(得分:0)

只需专注于Reactor模式(不在GoF中),您就可以轻松填补这么长时间。有关不同实现的信息和示例,请参阅this Wikipedia link(Python为Twisted)。