設計模式 工廠方法模式

2021-09-06 17:41:13 字數 1322 閱讀 1266

如果你對工廠模式這個概念不是很理解,建議:設計模式-簡單工廠模式

如果你對.net反射機制不了解,建議:.net反射詳解

描述一下工廠方法的概要:簡單工廠模式是要在工廠類中通過資料來做個決策,在工廠類中的多個類中例項化出來其中乙個要用到的類,做運算。而工廠方法模式則是他的乙個聰明的擴充套件,不在工廠類中做決策,而是把這個決策推遲到每個用到他的地方。

等待使用的類庫**:

///

///live類

/// public

abstract

class

live

//////

music類

/// public

class

music : live

}//////

bread類

/// public

class

bread : live

}

工廠方法例項化類:

///

///livefactory類

/// public

abstract

class

livefactory

//////

musicfactory類

/// public

class

musicfactory : livefactory

}//////

breadfactory類

/// public

class

breadfactory : livefactory

}

如何使用工廠類選擇建立例項(反射優化):

public

static

void main(string

args)

使用此模式:降低呼叫端的耦合度,並且對於工廠來說,是可以擴充套件的,以後如果想過另外的一種生活方式,只需要再增加乙個工廠類的實現就可以。無論是靈活性還是穩定性都得到了極大的提高。

下列情況考慮使用工廠方法

1.類不能**它必須建立哪一種型別的物件。

2.類使用它的子類指定他要建立的物件。

3.希望只有區域性知曉那個類被建立。

關於工廠模式會有幾種變化,需要了解一下。

1.基類是抽象的,但模式必須返回乙個可用的物件。

2.基類包含預設的方法,只有在預設方法不能勝任的情況下才呼叫這些方法。

3.傳遞給工廠的引數告知其返回幾種型別的類中的哪乙個,在這種情況下,類可能會共用相同的方法名稱,但要實現的事情可能是很不相同的。

設計模式 工廠方法模式

一 工廠方法 factory method 模式 工廠方法模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到工廠子類當中。核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角...

設計模式 工廠方法模式

1 factorymethod.h ifndef factorymethod h define factorymethod h include include using namespace std class osproduct 產品,product,產品的抽象類 class windowspro...

設計模式 工廠方法模式

框架的基礎知識 對框架的理解 框架和設計模式的關係 工廠方法模式 定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,factory method使乙個類的例項化延遲到其子類。結構 產品 public inte ce product 具體產品 public class productimpl...