Java設計模式(六):工廠方法模式

工廠方法模式(factory method pattern)

工廠方法模式(factory method pattern):屬於對象的創建型模式。定義一個用於創建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類。

工廠方法模式是類的創建模式,又叫做虛擬構造子(Virtual Constructor)模式或者多態性工廠(Polymorphic Factory)模式。


工廠方法模式UML圖

Java設計模式(六):工廠方法模式

Java


工廠方法模式涉及的角色

抽象角色:工廠方法模式所創建的對象的超類。如圖中 Operation。具體角色:具體角色,實現具體角色。如圖中 OperationAdd、OperationSub、OperationMul、OperationDiv。抽象工廠角色 :這個角色的是工廠方法模式的核心,任何在模式中創建對象的工廠類必須實現這個接口。如圖中 Ifactory。具體工廠角色 :抽象工廠接口的具體實現,含有與業務密切相關的邏輯,並且受到使用者的調用以創建導出類。如圖中 AddFactory、SubFactory、MulFactory、DivFactory。


示例代碼

運算類 OperationFactory

Java設計模式(六):工廠方法模式

Java

運算抽象類 AbstractOperation

Java設計模式(六):工廠方法模式

Java

加法運算類 OperationAdd

Java設計模式(六):工廠方法模式

Java

減法運算類 OperationSub

Java設計模式(六):工廠方法模式

Java

乘法運算類 OperationMul

Java設計模式(六):工廠方法模式

Java

除法運算類 OperationDiv

Java設計模式(六):工廠方法模式

Java

工廠接口類 IFactory

Java設計模式(六):工廠方法模式

Java

加法工廠類 AddFactory

Java設計模式(六):工廠方法模式

Java

減法工廠類 SubFactory

Java設計模式(六):工廠方法模式

Java

乘法工廠類 MulFactory

Java設計模式(六):工廠方法模式

Java

除法工廠類 DivFactory

Java設計模式(六):工廠方法模式

Java

客戶端測試類 FactoryMethodTest

Java設計模式(六):工廠方法模式

Java


工廠方法模式與簡單工廠模式比較

工廠方法模式克服了簡單工廠模式違背的開放-封閉原則的缺點,它是簡單工廠模式的進一步抽象和廣,從而降低了客戶端與產品的耦合,增加對應計算類的抽象工廠這樣就把簡單工廠的內部邏輯判斷轉移到了客戶端代碼類來進行。本來是改工廠類,而現在是修改客戶端。

以上所述是小編給大家介紹的工廠方法模式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的!

Java學習資料(複製下段鏈接至瀏覽器即可)

data:textml;charset=UTF-8;base64,5oGt5Zac5L2g77yM5p625p6E5biI5a2m5Lmg576k5Y+35pivNjg2NTc5MDE0Cg==

Java設計模式(六):工廠方法模式

Java

每晚8:00燭光學院的講師將會在騰訊課堂燭光學院Java高級免費試聽課程中
給大家詳細講解

Java學習資料獲取或免費進入課堂權限獲取(複製下段連接至瀏覽器即可)
data:text/html;charset=UTF-8;base64,5p625p6E5biI5a2m5Lmg6LWE5paZ5YWN6LS56aKG5Y+W6K+35Yqg5omj5omj5Y+35pivMTAxODkyNTc4MA==

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章