Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 设计模式:哪些是新的,现有的在哪里使用?_Design Patterns - Fatal编程技术网

Design patterns 设计模式:哪些是新的,现有的在哪里使用?

Design patterns 设计模式:哪些是新的,现有的在哪里使用?,design-patterns,Design Patterns,我的一个班级的可选作业。关于这两个主题的30-45分钟演示/案例研究: 现实项目中现有设计模式的例子:它们解决了什么问题,为什么比其他技术更好,等等 新的设计模式,它们解决了哪些其他设计模式无法解决的问题,等等 请注意,“新”和“现有”是指GoF手册和 对于第一个,源代码不是必需的,但它可能是一个加号,所以开源项目将是最好的 对于第二种情况,我基本上需要能够给出一个描述,就像GoF书中对每种模式的描述一样,有适当的动机、例子等等 有人有好主意/建议吗 你可以从阅读其他一些模式书籍开始:

我的一个班级的可选作业。关于这两个主题的30-45分钟演示/案例研究:

  • 现实项目中现有设计模式的例子:它们解决了什么问题,为什么比其他技术更好,等等
  • 新的设计模式,它们解决了哪些其他设计模式无法解决的问题,等等
  • 请注意,“新”和“现有”是指GoF手册和

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

    对于第二种情况,我基本上需要能够给出一个描述,就像GoF书中对每种模式的描述一样,有适当的动机、例子等等


    有人有好主意/建议吗

    你可以从阅读其他一些模式书籍开始:

  • 该项目是客户机/服务器模式的一个很好的例子,尽管这更像是一个体系结构模式而不是设计模式本身,但您可能会发现它很有用(而且是开源的)

    看看设计文档,信息量很大

  • 访问者模式在Eclipse中被广泛使用。查看(布局)或(核心)中的一些示例。(同样,两者都是开源的。)


  • 实际上,如果您查看Draw2D或Eclipse的代码,您会注意到使用了大量的设计模式。工厂、复合材料、命令、纪念品(还有模型视图控制器,但这又是架构性的)。只需抓取一个项目并查找它们,在中查找一些指向何处的指针。

    有很多设计模式wiki类型的站点,举几个例子:

    在许多应用程序中使用了一种非常明显的模式,而在关于这个主题的原始GoF书籍中没有。尽管正如NomeN在评论中提到的,它更多的是一种建筑设计模式,但在关于设计模式主题的演讲中,它可能值得一提


    这是另一种常见的方法,jQuery使用它。当您没有将任何内容与其主选择器函数匹配时,将返回一个空对象(仍然具有所有正常函数),而不是“null”。

    您问题中的“存在哪些新设计模式”部分很难回答,因为:

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

    • 根据应用层的不同,存在不同类型/种类的设计模式。例如“存储库模式”。
      例如,这是一种不属于GoF手册的模式,因为它比该手册中列出的模式作用于更高的级别/层。这是应用程序的“域层”中使用的模式。例如,就像“规范模式”一样


      • 没有新的设计模式。《四人帮》一书中的那些(模数)是非常正交和完整的。还有很多其他类型的模式。

        只需专注于反应器模式(而不是GoF),就可以轻松地填满那么多时间。有关不同实现的信息和示例,请参见(Twisted for Python就是其中之一)。

        类似MvC的客户机-服务器和更通用的分层体系结构是体系结构模式,而不是更低级的设计模式,这就是它们没有出现在GoF中的原因。老师可能对这种差异很难理解,尽管如果OP在他的演讲中指出这一点,他可能会放任不管。虽然这是一个很好的建议,但对于演讲的最终目标来说,这可能有点昂贵。另一方面,你知道这些书是否同样(与GoF)易于用作参考资料(模式词典)。