1.1 定義
乙個建立產品物件的工廠介面,將產品物件的實際建立工作推遲到具體子工廠類當中。
工廠方法模式的主要優點有:
使用者只需要知道具體工廠的名稱就可得到所要的產品,無須知道產品的具體建立過程;
在系統增加新的產品時只需要新增具體產品類和對應的具體工廠類,無須對原工廠進行任何修改,滿足開閉原則;
工廠方法模式的缺點是:每增加乙個產品就要增加乙個具體產品類和乙個對應的具體工廠類,這增加了系統的複雜度。
1. 2 模式的結構
1. 3 uml類圖
1. 4 問題由來
在現實生活中社會分工越來越細,越來越專業化。各種產品有專門的工廠生產,徹底告別了自給自足的小農經濟時代,這大大縮短了產品的生產週期,提高了生產效率。同樣,在軟體開發中能否做到軟體物件的生產和使用相分離呢?能否在滿足「開閉原則」的前提下,客戶隨意增刪或改變對軟體相關物件的使用呢?
1. 5 解決思路
定義乙個建立產品物件的工廠介面,將產品物件的實際建立工作推遲到具體工廠類當中,這樣即可以滿足生產和使用相分離。如果要建立的產品不多,只要乙個工廠類就可以完成,但實際確是有多種產品,這時對工廠的進一步抽象化,其好處是可以使系統在不修改原來**的情況下引進新的產品,也即滿足了開閉原則。這樣就可以做到生產和使用相分離,並且滿足「開閉原則」
1. 6 解決方案
/**
* @author tbb
* 汽車工廠
*/public
inte***ce
ca***ctory
/**
* @author tbb
* 汽車模型
*/public
inte***ce
car
/**
* @author tbb
* 賓士汽車工廠
*/public
class
benzca***ctory
implements
ca***ctory
}
/**
* @author tbb
* 奧迪汽車工廠
*/public
class
audica***ctory
implements
ca***ctory
}
/**
* @author tbb
* 賓士汽車
*/public
class
benzcar
implements
car}
/**
* @author tbb
* 奧迪汽車
*/public
class
audicar
implements
car}
public
class
test
}
1. 7 簡單工廠模式介紹
簡單工廠模式的定義:
我們把被建立的物件稱為「產品」,把建立產品的物件稱為「工廠」。如果要建立的產品不多,只要乙個工廠類就可以完成,這種模式叫「簡單工廠模式」,它不屬於 gof 的 23 種經典設計模式,它的缺點是增加新產品時會違背「開閉原則」。
工廠模式和簡單工廠模式比較:
工廠方法模式」是對簡單工廠模式的進一步抽象化,其好處是可以使系統在不修改原來**的情況下引進新的產品,即滿足開閉原則。
簡單工廠模式**如下:
/**
* @author tbb
* 汽車模型
*/public
inte***ce
car
/**
* @author tbb
* 汽車工廠
*/public
class
ca***ctory
}}
/**
* @author tbb
* 賓士汽車
*/public
class
benzcar
implements
car}
/**
* @author tbb
* 奧迪汽車
*/public
class
audicar
implements
car}
public
class
test
}
設計模型之抽象工廠模式 含UML完整例項
1.1 定義與特點 用來生產不同產品族的全部產品。對於增加新的產品,無能為力 支援增加產品族 使用抽象工廠模式一般要滿足以下條件 1 系統中有多個產品族,每個具體工廠建立同一族但屬於不同等級結構的產品。2 系統一次只可能消費其中某一族產品,即同族的產品一起使用。抽象工廠模式除了具有工廠方法模式的優點...
設計模型之命令模式含UML完整例項
1.1 定義與特點 命令 command 模式的定義如下 將乙個請求封裝為乙個物件,使發出請求的責任和執行請求的責任分割開。這樣兩者之間通過命令物件進行溝通,這樣方便將命令物件進行儲存 傳遞 呼叫 增加與管理。命令模式的主要優點如下 命令模式的缺點是 1.2 模式的結構 命令模式包含以下主要角色 1...
設計模型之裝飾者模式 含UML完整例項
1.1 定義與特點 裝飾 decorator 模式的定義 指在不改變現有物件結構的情況下,動態地給該物件增加一些職責 即增加其額外功能 的模式,它屬於物件結構型模式。有點像 模式的功能,物件提供了與真實物件相同的方法,並可以擴充套件真實物件的功能 裝飾 decorator 模式的主要優點有 其主要缺...