工廠模式的優勢:
1 良好的封裝型,代碼結構清晰,一個對象建立是有條件約束的,若是一個調用者須要一個具體的產品對象,只須要知道這個產品的類名就能夠了,不用知道建立對象的艱辛過程,下降模塊間的耦合性。緩存
2 工廠方法模式的擴展性很是的好,在增長產品類的狀況下,只須要適當的修改具體的工廠類或擴展一個工廠類,就能夠完成。spa
3 屏蔽產品類調試
4 高度結偶對象
一個簡單工廠模式實例
定義產品接口接口
實現2個產品類ip
定義工廠接口get
實現工廠類產品
業務場景it
運行結果class
至此,一個簡單工廠就完成了。
延遲加載的工廠模式:
一樣的先定義共有的man接口
定義兩個實現類
定義抽象工廠接口
抽象工程實現類
業務場景類
結果
經過斷點調試爲,咱們能夠看到,第一詞調用createMan方法的時候,是經過( Man ) Class.forName( T.getName( ) ).newInstance( );獲取實例的,可是第二次調用的時候,使用了緩存HashMap裏面的值。