首先介紹一下簡單工廠模式
比如要生產車子,有audi和benz兩種,然後實現了car這個介面客戶直接與ca***ctory打交道獲得對應car的例項
1:通過引數來確定需要的型別
2:通過不同的方法來獲取不同的例項package com.xiaoqiang.gof23.createmodel.factory.******factory;
/** * @author xiaoqiang
* * 簡單工廠實現的第一種方法 也稱靜態工廠
* 使用最多
* */
public class ca***ctory else if ("byd".equals(type)) else }}
總結:簡單工廠也稱為靜態工廠模式,工廠類一般用靜態方法,用過不同的引數或者呼叫不同的靜態方法返回不同的物件例項,它實現簡單,但是在需要新增新型別的car時,需要修改**,不利於擴充套件,但是在工作生產產品時最常用了package com.xiaoqiang.gof23.createmodel.factory.******factory;
/** * @author xiaoqiang
* * 第二種方式
*/public class ca***ctory02
public static car creatbyd()
}
工廠方法模式解決了以上的問題
有統一的car介面和ca***ctory介面,其他的car和工廠需要實現對應的介面建立相應的型別的例項
每種具體的類和工廠都實現對應的介面,沒生產乙個新的型別產品只需要實現介面,不需要修改**。符合開閉原則package com.xiaoqiang.gof23.createmodel.factory.factorymethod;
/** * @author xiaoqiang
*/public class audi implements car
}package com.xiaoqiang.gof23.createmodel.factory.factorymethod;
/** * @author xiaoqiang
*/public class audifactory implements ca***ctory
}
工程模式核心本質:
– 例項化物件,用工廠方法代替new操作。
– 將選擇實現類、建立物件統一管理和控制。從而將呼叫者跟我們的實現類解耦
設計模式 工廠模式之工廠方法模式
工廠方法模式是指定義乙個建立物件的介面,然後實現這個介面的工廠來決定建立什麼樣的例項。工廠方法讓類的例項推遲到子類中進行。在這個模式中,只關心需要建立的是什麼工廠,不需要關心建立的細節。而且新加入的產品符合開閉原則。1 建立支付介面,裡面定義抽象的支付方法。package com.gupao.vip...
設計模式之工廠方法模式
package com.csair.design.pattern 工廠方法,有抽象基類,每個子類生產乙個具體物件,與抽象工廠的關係是,抽象工廠生產多個產品 產品有某種內在聯絡 工廠方法只生產乙個物件 author ppt public class factorymethod public stati...
設計模式之工廠方法模式
在介紹工廠方法模式之前,先來介紹一下簡單工廠。什麼是簡單工廠?在類中,難免要例項化一些類,那麼我們把這些類的例項化抽離出來封裝成乙個工廠類,工廠類提供乙個公共的靜態或非靜態的方法來返回其他物件所需要的物件。這樣做的目的就是將物件的例項化與邏輯 分開,提高 的復用能力。這就是簡單工廠。public a...