從零開始單排學設計模式「簡單工廠設計模式」黑鐵 III
閱讀本文大概需要 2 分鐘。
本篇是設計模式系列的第二篇,雖然之前也寫過相應的文章,但是因為種種原因後來斷掉了,而且發現之前寫的內容也很渣,不夠系統。所以現在打算重寫,加上距離現在也有一段時間了,也算是自己的一個回顧吧!
學而時習之,不亦說乎。
推薦閱讀:
目前段位: 黑鐵 III
Let's Go!
前言
設計模式不是語法,是一種巧妙的寫法,能把程式變的更加靈活。架構模式比設計模式大,架構模式是戰略,而設計模式是戰術。
設計模式分為3大型別:建立型,行為型,結構型,總共有23種。
簡單工廠模式
簡單工廠模式設計模式屬於建立型設計模式,但不屬於23種設計模式範圍內,屬於23種設計模式中工廠方法的入門模式,又叫靜態工廠方法模式。
簡單工廠模式是一個工廠物件決定建立出哪一種產品類的例項。它的好處是隱藏物件建立,不用依賴物件,可以隨意更換物件。
在工廠模式中,工廠類中的所有方法返回同一個抽象產品類,程式碼的升級和擴充套件只需要在這個工廠類中注入新的功能方法,返回抽象產品類即可,或是另外寫介面,將這個抽象產品類強制轉換成這個介面,讓具體產品類去實現。
業務需求
如果讓你設計一個簡單的計算器,實現兩位數的簡單加減乘除運算,你會怎麼設計呢?
程式碼實現
剛接到需求的你,絕對會發現,需求是如此so easy(很容易),刷刷刷的就完成了任務。
實現思路很簡單,一個運算類,用來計算結果的,一個計算器類,用來實現互動並接收引數的。
寫完的程式碼如下
我們來執行一遍,看下結果
是不是很簡單,哈哈,我真是個天才(自戀一下),寫完之後看著自己寫的程式碼,總覺得似乎不妥。
Java的特點是物件導向,而物件導向的三大特徵是封裝、繼承和多型。我這裡好像只用到了封裝,將運算類進行一個簡單封裝,但是繼承和多型卻沒有體現出來.....要是這樣提交程式碼,被leader(領導)看到那豈不是要被拖出去槍斃,不行,還得再改改。
再次改版之後運算類Operation程式碼如下
(PS:這裡僅僅是為了方便所以宣告的是內部類,實際開發類似的程式時不要這樣寫,因為如果程式變複雜之後,這種編寫方式不利於維護)
新建立了一個簡單工廠類,用於實現業務邏輯。
計算器類改動不大
來試試新版的計算器,看一下結果
這樣提交程式碼問題應該不大了。
新版的程式碼中,你只需要輸入運算子號,工廠就例項化出合適的物件,透過多型,返回父類的方式實現了計算器的結果。同時,如果後續需要對程式維護,如要維護加法類,那麼只需要提供新增方法的程式碼即可,不需要全部程式碼都提供,提高了整個專案的安全性。
簡單工廠模式UML類圖
總結
工廠(Factory):用一個單獨的類來做這個類創造例項的過程,這就是工廠。
簡單工廠模式解決的就是物件建立問題。
當我們已知的某些條件後,對類的選擇,而這些類都是同一父類的子類,那麼我們就可以使用簡單工廠模式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69902700/viewspace-2633768/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 從零開始單排學設計模式「策略模式」黑鐵 II設計模式
- 從零開始單排學設計模式「裝飾模式」黑鐵 I設計模式
- 設計模式 - 簡單工廠模式設計模式
- 【設計模式】簡單工廠模式設計模式
- 設計模式——簡單工廠模式設計模式
- 設計模式-簡單工廠模式設計模式
- 設計模式----簡單工廠設計模式
- 設計模式之簡單工廠模式設計模式
- java設計模式-簡單工廠模式Java設計模式
- 設計模式(一)—— 簡單工廠模式設計模式
- 簡單工廠模式(設計模式02)設計模式
- 設計模式-簡單工廠、工廠方法模式、抽象工廠模式設計模式抽象
- 設計模式(一):簡單工廠設計模式
- iOS設計模式 - 簡單工廠iOS設計模式
- 23種設計模式(一)---簡單工廠設計模式設計模式
- 設計模式入門-簡單工廠模式設計模式
- golang設計模式之簡單工廠模式Golang設計模式
- 【Linux】設計模式-----簡單工廠模式Linux設計模式
- 大話設計模式:簡單工廠模式設計模式
- 【大話設計模式】——簡單工廠模式設計模式
- Java設計模式2:簡單工廠模式Java設計模式
- 從零開始單排學設計模式「UML類圖」定級賽設計模式
- Java設計模式(一) 簡單工廠模式不簡單Java設計模式
- C# 設計模式(1)——簡單工廠模式、工廠模式、抽象工廠模式C#設計模式抽象
- 5分鐘學設計模式之《簡單工廠模式》設計模式
- c#簡單工廠設計模式C#設計模式
- 設計模式 --並不簡單的工廠模式設計模式
- 設計模式系列之一:簡單工廠模式設計模式
- Yii2設計模式——簡單工廠模式設計模式
- Java常用設計模式之簡單工廠模式Java設計模式
- 設計模式第一篇 簡單工廠設計模式設計模式
- Java設計模式學習筆記(二) 簡單工廠模式Java設計模式筆記
- 設計模式之工廠模式!深入解析簡單工廠模式,工廠方法模式和抽象工廠模式設計模式抽象
- 設計模式 | 簡單工廠模式及典型應用設計模式
- 設計模式-簡單工廠模式概述和使用-介面設計模式
- android常用設計模式之簡單工廠模式Android設計模式
- JavaScript設計模式經典之簡單工廠模式JavaScript設計模式
- 設計模式筆記:簡單工廠模式(Simple Factory)設計模式筆記