您认为最滥用的设计模式是什么?

时间:2009-02-12 12:37:57

标签: design-patterns

使用Java和Java框架当我遇到抽象工厂模式时,我已经开始颤抖了。在我看来,这是最滥用的设计模式。并非所有框架都滥用它,但有很多框架滥用它。它不适合所有模型,几乎100%的时间你都会做同样的事情,为什么抽象它呢?

您认为哪种设计模式是最滥用的设计模式?一个开发人员使用它但它不能很好地适应问题的地方。一个金锤子和一切看起来像钉子的情况。那么,当你在野外遇到它时,哪种设计模式会让你不寒而栗?

编辑:想到了Singleton。但是在最过度使用的问题上出现了这种情况。我要求最受虐待的人。 (或者使用不当)。

4 个答案:

答案 0 :(得分:16)

Singleton,它使得对代码进行单元测试非常困难,因为它会对系统的其他部分创建非常强大的引用。

答案 1 :(得分:2)

我同意Singleton。

但是因为人们通常将它作为直接的GoF香草来实现,而不考虑它应该如何销毁。

阅读John Vlissides的书“模式孵化:应用设计模式”(sanitised Amazon link

中有趣的章节“杀死单身人士”。

修改:在here行找到了“杀死单身人士”一文。

HTH

欢呼声

答案 2 :(得分:0)

在java中,我发现template method模式被大量使用。在大多数其他语言中,它几乎都是反模式。

答案 3 :(得分:0)

我也投票支持辛格尔顿。

我不太喜欢Singleton,因为它引入了难以发现的依赖关系。一个类可能依赖于Singleton,但除非您阅读代码,否则您无法看到它。

如上所述,这会导致单元测试问题(以及其他问题)。使用Registry模式而不是Singleton模式可以部分解决单元测试问题。