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 模式的主要優點有 其主要缺...