2011-05-09 57 views
1

說我有以下接口:我在尋找哪種模式?

ICarProvider 

和實現它的類:

RedCarProvider:ICarProvider 
BlueCarProvider:ICarProvider 
GreenCarProvider:ICarProvider 

現在,我想這樣做是這樣的:

根據的設置用戶創建一個(僅一個)這些類的單個實例,並在應用程序的整個會話中使用它。所以我的邏輯只應該知道接口以及從哪裏獲得實例。

有沒有這樣的模式?

謝謝!

回答

6

它被稱爲factory pattern

+0

你應該稱之爲抽象工廠模式,因爲有兩種模式:'抽象工廠'和'工廠方法'。 – jgauffin 2011-05-09 20:36:07

+0

其基本思想是相同的,區別在於工廠的調用方式。 – Blindy 2011-05-09 22:20:22

+0

沒有。不僅如此。抽象工廠用於定義工廠應該是什麼樣子,工廠實現的全部目的是創建對象,而工廠方法最常用於創建聚合到它定義的類中。 – jgauffin 2011-05-10 05:19:36

1

這聽起來像是某種工廠模式。

我無法對自己不需要懷疑模式來描述如此微不足道的事情有任何疑問。

+0

...和一個存在。 *嘆* – 2011-05-09 14:29:53

3

抽象的工廠模式。瞭解更多關於wikipedia.org

在軟件開發中,工廠是在哪個對象構造代碼中的位置。採用這種模式的目的是爲了避免使用對象的創建。這允許在不改變使用基類的代碼的情況下引入新的派生類型。

0

那有什麼關係,你已經提出了似乎是一個工廠圖案,但你不應該只爲描述對象的屬性,創建一個類,有時是更好地使用這些地圖的。