設計模型之抽象工廠模式 含UML完整例項

2021-10-04 21:09:27 字數 2393 閱讀 6538

1.1 定義與特點

用來生產不同產品族的全部產品。(對於增加新的產品,無能為力;支援增加產品族)。

使用抽象工廠模式一般要滿足以下條件:

1).系統中有多個產品族,每個具體工廠建立同一族但屬於不同等級結構的產品。

2).系統一次只可能消費其中某一族產品,即同族的產品一起使用。

抽象工廠模式除了具有工廠方法模式的優點外,其他主要優點如下:

1).可以在類的內部對產品族中相關聯的多等級產品共同管理,而不必專門引入多個新的類來進行管理。

2).當增加乙個新的產品族時不需要修改原**,滿足開閉原則。

抽象工廠模式的缺點是:

1).當產品族中需要增加乙個新的產品時,所有的工廠類都需要進行修改。

1.2 模式的結構

1.3 uml類圖

1.4 問題由來

工廠方法模式中考慮的是一類產品的生產,如畜牧場只養動物、電視機廠只生產電視機、計算機軟體學院只培養計算機軟體專業的學生等。

同種類稱為同等級,也就是說:工廠方法模式只考慮生產同等級的產品,但是在現實生活中許多任務廠是綜合型的工廠,能生產多等級(種類) 的產品,如農場裡既養動物又種植物,電器廠既生產電視機又生產洗衣機或空調,大學既有軟體專業又有生物專業等。

1.5 解決思路

在**設計層面,抽象工廠模式的結構同工廠方法模式的結構相似,不同的是其產品的種類不止乙個,所以建立產品的方法也不止乙個,所以只要增加建立不同種產品的方法,就可以實現抽象工廠模式

1.6 解決方案

/**

* @author tbb

* 工廠產品族介面類

*/public

inte***ce

factory

/**

* @author tbb

* 海爾工廠產品族類

*/public

class

haie***ctory

implements

factory

@override

public refrigerator createrefrigerator()

}

/**

* @author tbb

* tcl工廠產品族類

*/public

class

tclfactory

implements

factory

@override

public refrigerator createrefrigerator()

}

/**

* @author tbb

* 冰箱介面類

*/public

inte***ce

refrigerator

/**

* @author tbb

* 洗衣機介面類

*/public

inte***ce

washingmachine

/**

* @author tbb

* 海爾品牌冰箱類

*/public

class

haierrefrigerator

implements

refrigerator

}

/**

* @author tbb

* 海爾品牌洗衣機類

*/public

class

haierwashingmachine

implements

washingmachine

}

/**

* @author tbb

* tcl品牌冰箱類

*/public

class

tclrefrigerator

implements

refrigerator

}

/**

* @author tbb

* tcl品牌洗衣機類

*/public

class

tclwashingmachine

implements

washingmachine

}

public

class

test

}

設計模型之工廠模式 含UML完整例項

1.1 定義 乙個建立產品物件的工廠介面,將產品物件的實際建立工作推遲到具體子工廠類當中。工廠方法模式的主要優點有 使用者只需要知道具體工廠的名稱就可得到所要的產品,無須知道產品的具體建立過程 在系統增加新的產品時只需要新增具體產品類和對應的具體工廠類,無須對原工廠進行任何修改,滿足開閉原則 工廠方...

設計模型之命令模式含UML完整例項

1.1 定義與特點 命令 command 模式的定義如下 將乙個請求封裝為乙個物件,使發出請求的責任和執行請求的責任分割開。這樣兩者之間通過命令物件進行溝通,這樣方便將命令物件進行儲存 傳遞 呼叫 增加與管理。命令模式的主要優點如下 命令模式的缺點是 1.2 模式的結構 命令模式包含以下主要角色 1...

設計模型之裝飾者模式 含UML完整例項

1.1 定義與特點 裝飾 decorator 模式的定義 指在不改變現有物件結構的情況下,動態地給該物件增加一些職責 即增加其額外功能 的模式,它屬於物件結構型模式。有點像 模式的功能,物件提供了與真實物件相同的方法,並可以擴充套件真實物件的功能 裝飾 decorator 模式的主要優點有 其主要缺...