工廠方法模式

2021-10-20 15:57:55 字數 1155 閱讀 6822

書接上回,上次說到了簡單工廠模式的缺陷--如果有多個產品,或者增加新的產品就需要修改工廠類的判斷**邏輯 因此引入了工廠方法模式為對應的產品子類來建立工廠子類,即利用多型的特性動態建立物件

工廠介面

public inte***ce mobilefactory_2
實現工廠介面的工廠子類

public class higemobilefactory_2 implements mobilefactory_2 

}

public class lowmobilefactory_2 implements mobilefactory_2 

}

建立測試–客戶端呼叫工廠類

public class mobilephonetest_2 

}

工廠介面

public inte***ce  mobilefactory
實現工廠介面的工廠反射類

public class reflectmobilefactory implements mobilefactory  catch (instantiationexception e)

catch (illegalacces***ception e)

catch (classnotfoundexception e)

return

(t) mobilephone;

}}

建立測試–客戶端呼叫工廠類

public class mobilephonetest 

}

工廠方法模式相比於簡單工廠模式的優點:沒有違背開放封閉原則,解決了新增例項會修改工廠類中的**邏輯的問題。

思考題:

如果需要建立的子類越來越多,不僅僅有手機,還有好多其他東西,難道都需要建立乙個工廠子類嘛?

可以對產品類進行分組,組內不同產品對應同乙個工廠類的不同方法–這就是我們下次要說的抽象工廠模式

工廠方法模式 工廠方法模式

工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...

工廠方法模式 工廠方法模式 二

工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...

工廠方法模式(一) 簡單工廠方法模式

ps 第二篇學習部落格,堅持就是勝利。繼續設計模式的學習,記錄工廠模式,加深自己的理解。基本結構 abstractproduct 用來定義基本的商品的抽象 public abstract class abstractphoneproduct 用來實現抽象商品,生成各種商品 public class ...