工廠方法模式:定義乙個用於建立物件的介面,但是讓子類來決定到底建立哪乙個例項。工廠方法模式讓乙個類的例項化延遲到其子類。
工廠方法模式,簡單來說是來為了解決簡單工廠模式所出現的一些缺點而進行的改進。比如當乙個簡單的工廠模式要生產乙個汽車,奧迪汽車,寶馬汽車,但是如果要新增乙個賓士汽車。那麼就要修改源**,也就是修改工廠的源**!新增乙個業務邏輯,顯然不符合開閉原則,所以就有了工廠方法模式。提供乙個抽象工廠方法模式,這樣就可以避免新增的時候修改源**,只要新建乙個類來繼承了工廠方法模式即可
示例1汽車介面
public
inte***ce
icar
工廠介面
public
inte***ce
ica***ctory
奧迪汽車
public
class
audi
implements
icar
}
寶馬汽車
public
class
bmwimplements
icar
}
奧迪工廠
public
class
audifactory
implements
ica***ctory
}
寶馬工廠
public
class
bmwfactory
implements
ica***ctory
}
測試類
public
class
demo1test
}
總結
優點:
缺點:適用場景:
1、客戶端不知道它所需要的物件的類,在工廠方法模式中,客戶端不需要具體產品類的類名,只需要知道所對應的工廠即可,具體產品物件由具體工廠類建立,可見具體產品類的類名在配置檔案或者資料庫中存在
2、抽象工廠類通過其子類來指定建立那個產品類,用父類來新建子類可以提高可擴充套件性
工廠方法模式 工廠方法模式
工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...
工廠方法模式 工廠方法模式 二
工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...
工廠方法模式(一) 簡單工廠方法模式
ps 第二篇學習部落格,堅持就是勝利。繼續設計模式的學習,記錄工廠模式,加深自己的理解。基本結構 abstractproduct 用來定義基本的商品的抽象 public abstract class abstractphoneproduct 用來實現抽象商品,生成各種商品 public class ...