Java 简单工厂模式和工厂模式(类图及实现)
生活随笔
收集整理的這篇文章主要介紹了
Java 简单工厂模式和工厂模式(类图及实现)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一. 工廠模式概要
- 二.簡單工廠模式
- 三. 工廠模式
一. 工廠模式概要
這原則核心思想,寧愿多創建幾個類,也不要去修改已經寫好的類,但如果是系統邏輯的錯誤,可以修改類。
面向對象設計基本原則:
| 開閉原則 | 軟件實體應該是可擴展的,而不可修改的 |
| 里氏替換原則\color {red}{里氏替換原則}里氏替換原則 | 子類必須能夠替換其基類,保證繼承復用的基礎 |
| 依賴倒轉原則 | 依賴于抽象,高層模塊不依賴于底層模塊,二者都同依賴于抽象 |
| 單一職責 | 一個類,只做一件事并且做好 |
| 接口隔離原則 | 使用多個小的專門的接口,而不要使用一個大的總接口 |
| 迪米特法則 | 如果兩個類之間無須直接通信,那么就不應當發生直接的相互調用,可以通過第三方轉發該調用 |
| 簡單工廠模式 | 用來生產同一等級結構中的任意產品。(對于增加新的產品,需要修改已有代碼)(違反開閉原則) |
| 工廠模式 | 用來生產同一等級結構中的固定產品。(支持增加任意產品) |
| 抽象工廠 | 用來生產不同產品族的全部產品。(對于增加新的產品,無能為力;支持增加產品族) |
二.簡單工廠模式
創建意圖就是,把對類的創建初始化全都交給一個工廠來執行,而用戶不需要去關心創建的過程是什么樣的,只用告訴工廠我想要什么就行了。違背了設計模式的開閉原則,如果你要增加其他產品,就必須對工廠進行改建。
例如我開了奔馳公司想要生產A系列的車和B系列的車,首先定義接口,創建兩種車的類,和工廠類,就可以生產車了。
類圖:
實現代碼:
如果改天想生產C系列的車carC,就得先造carC的類,但是要想完成對carC的生產,此時只能去修改工廠類,在里面添加一個新的方法,制造carC,但是不符合開閉原則。
三. 工廠模式
- 解決簡單工廠方法模式的缺點:使用工廠方法模式為每一種產品生成一個對應的工廠。
- 工廠方法模式的核心思想:討論的仍然是如何構建同一類型產品(都實現同一個接口)的問題,只不過每個工廠只生產一種特定的產品。
- 優勢:是當以后需要增加新的產品時,直接新增加一個對應的工廠就可以了,而不是去修改原有的工廠
奔馳廠商優化生產線類圖:
實現
優缺點
- 優點:不直接在客戶端創建具體產品的實例,降低了耦合性。
- 缺點:每增加一種產品就要相應的增加一個工廠類,比較繁瑣。
技術要點總結
- 構建的都是同一類型的對象,即實現相同的接口
- 每一類對象對應一個工廠
欠的有一天不得不補回來 (| _ |)
參考
總結
以上是生活随笔為你收集整理的Java 简单工厂模式和工厂模式(类图及实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IE8兼容性问题
- 下一篇: java美元兑换,(Java实现) 美元