2013-10-22 86 views
3

像往常一樣建立與不同的設計模式的項目建築師總是喜歡那個特定的設計模式的有利觀點。但有時候需要了解違規領域和項目未來擴展方面的劣勢。我現在正在使用抽象工廠設計模式。我瞭解它,但無法弄清它的缺點,它的侷限性,哪裏會失敗。有人可以給我解釋一下Abstract Factory設計模式的另一種觀點嗎?抽象工廠設計模式的缺點是什麼?

回答

3

首先,在任何設計模式下,您都會添加更多的抽象層和複雜性,所以只有在沒有明顯的痛苦時才應用模式。這與Bob Martin的「Take the bullet」和Nathan Marz的「Suffering-Oriented Programming」類似。

隨着抽象工廠,特別是決定哪個工廠在運行時使用。通常,這是在一些代碼中完成的,該代碼致力於通過基於一些關鍵信息的條件分支來提供正確的工廠。這意味着隨着更多工廠的建立,這個中心決策點必須進行修改。這很煩人。

最後,如果一個工廠的任何底層細節有任何更改,則可能需要修改所有工廠的界面。這打破了客戶。像往常一樣,要非常小心地選擇接口。