Design patterns 设计模式:哪些是新的,现有的在哪里使用?
我的一个班级的可选作业。关于这两个主题的30-45分钟演示/案例研究:Design patterns 设计模式:哪些是新的,现有的在哪里使用?,design-patterns,Design Patterns,我的一个班级的可选作业。关于这两个主题的30-45分钟演示/案例研究: 现实项目中现有设计模式的例子:它们解决了什么问题,为什么比其他技术更好,等等 新的设计模式,它们解决了哪些其他设计模式无法解决的问题,等等 请注意,“新”和“现有”是指GoF手册和 对于第一个,源代码不是必需的,但它可能是一个加号,所以开源项目将是最好的 对于第二种情况,我基本上需要能够给出一个描述,就像GoF书中对每种模式的描述一样,有适当的动机、例子等等 有人有好主意/建议吗 你可以从阅读其他一些模式书籍开始:
有人有好主意/建议吗 你可以从阅读其他一些模式书籍开始:
实际上,如果您查看Draw2D或Eclipse的代码,您会注意到使用了大量的设计模式。工厂、复合材料、命令、纪念品(还有模型视图控制器,但这又是架构性的)。只需抓取一个项目并查找它们,在中查找一些指向何处的指针。有很多设计模式wiki类型的站点,举几个例子:
这是另一种常见的方法,jQuery使用它。当您没有将任何内容与其主选择器函数匹配时,将返回一个空对象(仍然具有所有正常函数),而不是“null”。您问题中的“存在哪些新设计模式”部分很难回答,因为:
- GoF书中列出的一些语言的设计模式有新的实现。例如,可以使用委托在.NET中编写观察者模式
- 根据应用层的不同,存在不同类型/种类的设计模式。例如“存储库模式”。
例如,这是一种不属于GoF手册的模式,因为它比该手册中列出的模式作用于更高的级别/层。这是应用程序的“域层”中使用的模式。例如,就像“规范模式”一样
- 没有新的设计模式。《四人帮》一书中的那些(模数)是非常正交和完整的。还有很多其他类型的模式。只需专注于反应器模式(而不是GoF),就可以轻松地填满那么多时间。有关不同实现的信息和示例,请参见(Twisted for Python就是其中之一)。类似MvC的客户机-服务器和更通用的分层体系结构是体系结构模式,而不是更低级的设计模式,这就是它们没有出现在GoF中的原因。老师可能对这种差异很难理解,尽管如果OP在他的演讲中指出这一点,他可能会放任不管。虽然这是一个很好的建议,但对于演讲的最终目标来说,这可能有点昂贵。另一方面,你知道这些书是否同样(与GoF)易于用作参考资料(模式词典)。