2008-11-20 58 views
4

我已經瞭解了工廠方法設計模式,同時,我從閱讀教程(我已經在智能感知中遇到過很多東西)中遇到了Activator對象以及如何使用它。何時使用激活器以及何時使用工廠方法?

Activator允許後期綁定,這可能非常有用。但是這是因爲我們不知道我們想要實例化哪個類。同樣,工廠方法在軟件工程中處理同樣的問題。

在一個簡單的層次上,一堆ifs或case語句,然後基於if條件實例化一個對象是factory方法的實現,對嗎?

關於相關主題,我已經讀過多態可以通過消除case語句來減少對象之間的耦合。有沒有這樣的例子?

感謝

回答

8

如果你知道在編譯的時候你會想實例化潛力類,使用工廠模式,這將是更快,讓編譯器檢查類型安全。另一方面,如果您不知道可能需要實例化的所有類(例如,如果您嘗試提供插件體系結構),則唯一的選擇是使用Activator

這裏的簡單經驗法則是:只要場景允許,選擇使用Activator(或任何其他類型的運行時綁定)的工廠。

相關問題