2010-01-28 70 views
3

我有一個工廠,使對象依賴於外部對象,我傳遞它在工廠的構造函數?工廠模式與外部依賴關係

+0

是的。 .......... – 2010-01-28 07:30:57

+0

有沒有更好的方法?這個工廠不會依賴這個外部對象嗎? – jiji 2010-01-28 07:36:32

回答

2

因爲工廠方法調用對象構造函數,所以您應該將所有必要的參數傳遞給工廠方法。考慮如下因素:

class Foo { 
} 

class Boo { 
    public Boo(Foo foo) {} 
} 

static class BooFactory { 
    public static Boo CreateBoo(Foo foo) { 
    return new Boo(foo); 
    } 
} 

另一種選擇,如aaronls建議,您可以使用Inversion of Control減少這種依賴關係。

+0

優秀的先生,謝謝! – jiji 2010-01-30 02:09:18

1

我不確定,但你可能想看看控制和依賴注入的反轉。它需要一點點才能讓你的頭部纏繞,但這是專門處理依賴關係的模式。