C 設計模式 3 工廠方法模式

2021-08-07 01:43:37 字數 2665 閱讀 4403

工廠方法(factorymethod)模式:定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類中;

工廠類集中了所有產品建立邏輯的,如果不能正常工作的話會對系統造成很大的影響。如果我們增加乙個產品,我們就需要在工廠類中增加case分支條件,修改原有的類,這樣我們不但對擴充套件開放了,也對修改開放了,違背了「開放-封閉」原則,所以我們對簡單工廠模式進行優化,對工廠抽出乙個介面,就有了以下的工廠方法模式

(來自大話設計模式)

下面的類圖、**將均以資料庫操作為例項;

注:這裡例項僅做示例,不包含業務邏輯;

以新增、更新為例;

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod

}

繼承上述資料庫操作抽象類

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod

//////

更新

/// ///

public

override

bool

update()}}

view code

繼承上述資料庫操作抽象類

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod

//////

更新

/// ///

public

override

bool

update()}}

view code

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod

}

實現介面

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod}}

實現介面

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

factorymethod}}

oracle資料庫和sqlserver資料庫操作分別呼叫

當需要增加新產品的時候,需要增加新的產品類,還需要增加對應的工廠類

C 設計模式 3 工廠方法模式

工廠方法 factorymethod 模式 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類中 工廠類集中了所有產品建立邏輯的,如果不能正常工作的話會對系統造成很大的影響。如果我們增加乙個產品,我們就需要在工廠類中增加case分支條件,修改原有的類,這樣我們...

設計模式 3 工廠方法模式

1.意圖 定義乙個用於建立物件的的介面,讓子類決定例項化哪乙個類.2.適用性 當乙個類不知道它必須所建立的物件的類的時候。當乙個類希望由它的子類來指定它所建立的物件的時候。3.抽象工廠和工廠方法的區別 抽象工廠 模式依賴於 工廠方法 模式的。因此,抽象工廠強調的是前面的動詞 抽象 也就是說,你將工廠...

設計模式 3 工廠方法模式

定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使得乙個類的例項化延遲到了其子類。抽象工廠介面,用於建立計算物件 public inte ce ifactory 抽象計算介面,表示用於實現的業務 public inte ce calculate 具體工廠類,實現抽象工廠介面,返回...