設計模式 工廠模式

2021-09-21 17:42:26 字數 762 閱讀 2674

1.工廠模式的主要目的是:實現了呼叫者和建立者分離,例項化物件,使用工廠類方法來替代new操作,將實現類,建立物件統一管理和控制。從而將呼叫者和實現類進行解耦。

2.工廠模式 型別:

簡單工廠模式:用來生產已知的產品(對於新增的產品需要修改工廠類,違背了物件導向的ocp原則),示例**鏈結簡單工廠模式**。

工廠方法模式:彌補了簡單工廠模式中違背了ocp原則,對於新增的產品不需要修改之前的**,只需要新增新的工廠類工廠方法模式**。

抽象工廠模式:用於新增產品族(不同產品的集合,可能每個產品有不同的配置組合在一起)抽象工廠模式**。

3簡單工廠和工廠方法的優缺點:

結構複雜度:簡單工廠只需要乙個工廠類就可以,而工廠方法模式產品越多,工廠類就越多。

**複雜度:簡單工廠中的工廠類隨著產品的增加,比較複雜每個產品都在乙個工廠類中生產;工廠方法模式每個工廠類就只生產單個產品。

客戶端編碼難度:簡單工廠模式直接使用靜態方法建立工廠,而工廠方法模式需要對工廠類例項化。

雖然工廠方法模式符合ocp原則,實際上我們一般使用簡單工廠模式。

4.應用場景:

jdk中calendar的getinstance方法

jdbc中connection物件的獲取

hibernate中sessionfactory建立session

spring中ioc容器建立管理bean物件

xml解析時的documentbuilde***ctory建立解析器物件

反射中class物件的newinstance()

設計模式 工廠模式 抽象工廠模式

建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...

設計模式 工廠設計模式

用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...

設計模式 工廠設計模式

工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...