java设计模式之简单工厂模式
定義:
由一個工廠對象決定創建出哪一種產品類的實例
類型:屬于創建型,但不屬于GOF23中設計模式
工廠模式分為三種:
1、簡單工廠模式(靜態工廠方法模式)
2、工廠方法模式(多態性工廠模式)
3、抽象工廠模式(工具箱模式)
適用場景:
工廠類負責創建的對象比較少。
客戶端(應用層)只知道傳入工廠類的參數,對于如何創建對象(邏輯)不關心。
優點:
只需要傳入一個正確的參數,就可以獲取你所需要的對象,而無需知道其創建細節。
缺點:
工廠類的職責相對過重,增加新的產品,需要修改工廠類的判斷邏輯,違背開閉原則。
Coding:
場景:例如課程網上有java的視頻,有Python的視頻,前端的視頻
首先創建一個video視頻抽象類
創建java的視頻實現類JavaVideo類:
創建Python的視頻實現類PythonVideo類:
創建一個Test測試類(應用層也就是客戶端):
創建工廠類VideoFactory
修改Test類中如下
類圖如下:
Test只依賴VideoFactory這個類,具體的生產過程都在VideoFactory這個類中,Test只管使用。
這就是簡單工廠
接下來看一看簡單工廠有什么缺點,比如我們現在要加一個算法的課程,那我們就需要修改VideoFactory這個類,隨著課程不斷的增加我們就需要不斷地去修改工廠類,修改就會帶來風險,所以簡單工廠并不符合開閉原則,不易擴展。
我們可以通過反射來彌補簡單工廠的不易擴展性。
首先修改VideoFactory類
修改Test類如下
這就解決了簡單工廠的不易擴展性,即使有新的課程,只需要創建新的課程類就可以。
總結
以上是生活随笔為你收集整理的java设计模式之简单工厂模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你做了什么自己没数吗 现在这个样子我们也
- 下一篇: Ajax获取XML格式的数据