2015-02-11 22 views
-2

今天我有一個採訪,我被要求在c#中創建一個工廠模式,以便我可以添加具體類而不必修改腳手架(創作者)。如何在c#中創建工廠模式而不用修改腳手架(創作者)

任何人都可以請解決這個例子。

感謝,我能想到的

+2

咦?我認爲這是一個很糟糕的問題。我不確定「腳手架」和「創作者」這兩個術語在這裏適用。談到工廠時,這當然不是標準術語。你在尋找抽象工廠模式嗎?控制容器的反轉? 'TypeDescriptor.GetConverter'? – 2015-02-11 18:17:48

+0

只有工廠模式.. – sia 2015-02-11 18:19:38

+0

然後我不知道你在問什麼。工廠模式基本上是一種用於創建複雜對象的方法。而已。這是最簡單的設計模式之一,沒有技巧。這只是一種方法。說你不想修改腳手架就像說你不想修改大象一樣有意義。 – 2015-02-11 18:22:10

回答

0

的方法之一是讓工廠恢復其所有的具體類會實現一個接口。然後,工廠將使用依賴注入來注入特定的具體類,並在爲該接口註冊類和IoC容器時進行控制。工廠只會使用接口方法來構建該對象。希望這是有道理的,並符合你所要求的。通過腳手架,我假設你是實際的工廠邏輯。

1

Abstract Factory設計模式抽象創建(一系列)對象的過程。

客戶端(創建者)是指抽象(AbstractFactory接口)並獨立於實現(即如何創建對象,實例化哪些類)。
您可以添加具體類別(Factory1,Factory2,...),而無需修改客戶端 (創作者)。

請參閱以下UML圖(如果您不確定如何實施,請告訴我)。

UML Diagram not found, please let me know

如需進一步討論,請參閱學習 面向對象的設計&編程/抽象工廠在http://w3sdesign.com(解決方案和代碼樣本) GoF的設計模式記憶。