最近一直在Java方向奮鬥《終於,我仍是下決心學Java後臺了》,今天抽空開始學習Java的設計模式了
。計劃有時間就去學習,你這麼有時間,還不來一塊兒上車嗎?android
之因此要學習Java模式,是由於面試的時候有時間回答的不是太完整,面試事後纔想起來如何回答。因此,我說了: 只有總結纔是王道,只有總結才能提升git
其實正規的來講Java實際上是23中設計模式,不過網上也有說是24種或者是26中的!設計模式不過是前人對代碼的一種封裝。用專業的話來說:設計模式是一套被反覆使用、多數人知曉的、通過分類編目的、代碼設計經驗的總結程序員
建立型模式,共五種:github
結構型模式,共七種:面試
行爲型模式,共十一種:數據庫
工廠模式是建立型模式之一,又稱爲靜態工廠方法模式!設計模式
缺點:框架
每次增長一個產品時,都須要增長一個具體類和對象實現工廠,是的系統中類的個數成倍增長,在必定程度上增長了系統的複雜度,同時也增長了系統具體類的依賴。這並非什麼好事。學習
用途:測試
第一種狀況是對於某個產品,調用者清楚地知道應該使用哪一個具體工廠服務,實例化該具體工廠,生產出具體的產品來。Java Collection中的iterator() 方法即屬於這種狀況。
第二種狀況,只是須要一種產品,而不想知道也不須要知道到底是哪一個工廠爲生產的,即最終選用哪一個具體工廠的決定權在生產者一方,它們根據當前系統的狀況來實例化一個具體的工廠返回給使用者,而這個決策過程這對於使用者來講是透明的。
典型例子:
車子繼承vehicle(車)類,有小汽車卡,公交車bus等,車子工廠實現工廠接口,工廠接口有抽象方法vehicle produce vehicle(String type)方法,車子工廠中實現工廠方法vehicle produce vehicle(String Type),方法中根據須要new新的車子。
示例代碼:
有人把工廠模式分爲: 簡單工廠模式 ,工廠方法模式,抽象工廠模式,因此多出一種模式,這裏簡單工廠模式比較簡單,實際中用的的不多,只在很簡單的狀況下用,沒啥好說的,聽說這不是一個真正的設計模式。在這裏我就不作討論了。但願 你們也不用糾結!
項目地址:
學習一個知識點要知道是什麼,爲何,怎麼辦,要知其然。也要知其因此然!
在這裏得到的不只僅是技術!