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

2021-10-04 20:57:01 字數 2556 閱讀 7210

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