2009-02-12 85 views
3

使用Java和Java框架當我遇到Abstract Factory模式時,我開始顫抖。在我看來,這是最受虐待的設計模式。並不是所有的框架都會濫用它,但有很多。它不適合所有的模型,並且幾乎100%的時間你都會爲了抽象而做同樣的事情。你認爲什麼是最濫用的設計模式?

您認爲哪種設計模式是最濫用的設計模式?開發人員使用它的地方,但它不能很好地解決問題。有一個金錘子和一切看起來像釘子的情況。那麼,當你在野外遇到它時,哪種設計模式會讓你不寒而慄?

編輯:只是想過單身人士。但是在最被濫用的問題上出現了這種情況。我要求的是最受虐待的。 (或錯誤地使用)。

+0

我會同意抽象工廠。似乎是「建築宇航員」的最愛。 – 2009-02-12 13:49:18

+0

查看相關問題http://stackoverflow.com/questions/449731/design-patterns-to-avoid/449744 – krosenvold 2009-02-14 13:47:48

回答

16

單例,它使單元測試代碼非常困難,因爲它創建了對系統其他部分的非常強的引用。

+0

這就是爲什麼春天的岩石:DI單身人士。 :) – cletus 2009-02-12 12:43:03

0

在java中,我發現template method模式被大量使用。在大多數其他語言中,它幾乎是一個反模式。

2

我同意Singleton。

但是因爲人們通常將它作爲直接的GoF香草來實施,而不要考慮它應該如何銷燬。

有有趣的一章「殺死一單身」在約翰·弗利賽德斯的書也可用讀「模式孵化:應用設計模式」(sanitised Amazon link

編輯:就發現文中的「殺死一辛格爾頓「文章在線here

HTH

歡呼

0

我投辛格爾頓也是如此。

我不是很喜歡Singleton,因爲它引入了很難發現的依賴關係。一個類可能依賴於Singleton,但除非您閱讀代碼,否則您無法看到它。

如上所述,這會導致單元測試問題(除其他外)。單元測試問題可能部分通過使用Registry模式而不是單例模式來解決。