2010-10-26 62 views
2

如果我有一個工廠創建一個需要另一個對象的實例的對象,我應該使用另一個工廠負責這個第二個對象的創建,或者原始工廠應該如何處理?如果要創建的對象需要另一個對象,工廠是否應該使用另一家工廠?

+0

它可能取決於對象如何相互依賴。總的來說,我不會濫用工廠。它不會傷害閱讀關於工廠工廠的以下文章:http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12 – Patrick 2010-10-26 16:43:21

回答

1

作爲大多數設計問題的答案,它取決於。如果幾乎任何其他對象的實例都可以用來初始化第一個對象,那麼可能是。這會讓他們更獨立,但是你的代碼將會增長(通常的折衷)。另一方面,如果特定對象需要特定的其他對象,那麼這應該是一個工廠(或抽象工廠)

1

它完全取決於第二個對象的性質。它是否屬於這個工廠?如果是這樣,那麼這家工廠應該處理它。如果不是,也許另一個工廠(或其他完全)應該做這項工作。

這種問題的訣竅是知道何時忽略軟件工程的規則。

1

正如其他兩個答案所述,它取決於您需要的抽象級別。考慮可測試性和可擴展性。如果第二個對象是通過工廠方法創建的,那麼是的。你編織兩種模式一起工作。把它當作你最初想要的黑盒子。

如果您想更詳細地回答我的問題,請填寫詳細信息。