工廠方法模式(factory method pattern)
工廠方法模式(factory method pattern):屬於對象的創建型模式。定義一個用於創建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類。
工廠方法模式是類的創建模式,又叫做虛擬構造子(Virtual Constructor)模式或者多態性工廠(Polymorphic Factory)模式。
工廠方法模式UML圖
工廠方法模式涉及的角色
抽象角色:工廠方法模式所創建的對象的超類。如圖中 Operation。具體角色:具體角色,實現具體角色。如圖中 OperationAdd、OperationSub、OperationMul、OperationDiv。抽象工廠角色 :這個角色的是工廠方法模式的核心,任何在模式中創建對象的工廠類必須實現這個接口。如圖中 Ifactory。具體工廠角色 :抽象工廠接口的具體實現,含有與業務密切相關的邏輯,並且受到使用者的調用以創建導出類。如圖中 AddFactory、SubFactory、MulFactory、DivFactory。
示例代碼
運算類 OperationFactory
運算抽象類 AbstractOperation
加法運算類 OperationAdd
減法運算類 OperationSub
乘法運算類 OperationMul
除法運算類 OperationDiv
工廠接口類 IFactory
加法工廠類 AddFactory
減法工廠類 SubFactory
乘法工廠類 MulFactory
除法工廠類 DivFactory
客戶端測試類 FactoryMethodTest
工廠方法模式與簡單工廠模式比較
工廠方法模式克服了簡單工廠模式違背的開放-封閉原則的缺點,它是簡單工廠模式的進一步抽象和廣,從而降低了客戶端與產品的耦合,增加對應計算類的抽象工廠這樣就把簡單工廠的內部邏輯判斷轉移到了客戶端代碼類來進行。本來是改工廠類,而現在是修改客戶端。
以上所述是小編給大家介紹的工廠方法模式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的!
Java學習資料(複製下段鏈接至瀏覽器即可)
data:textml;charset=UTF-8;base64,5oGt5Zac5L2g77yM5p625p6E5biI5a2m5Lmg576k5Y+35pivNjg2NTc5MDE0Cg==