工廠方法和抽象工廠區別

2021-09-01 08:33:17 字數 904 閱讀 4685

本文介紹工廠方法和抽象工廠區別。

工廠方法建立一般只有乙個方法,建立一種產品。

抽象工廠一般有多個方法,建立一系列產品。

目的不一樣

工廠方法建立 "一種" 產品,他的著重點在於"怎麼建立",也就是說如果你開發,你的大量**很可能圍繞著這種產品的構造,初始化這些細節上面。也因為如此,類似的產品之間有很多可以復用的特徵,所以會和模版方法相隨。

抽象工廠需要建立一些列產品,著重點在於"建立哪些"產品上,也就是說,如果你開發,你的主要任務是劃分不同差異的產品線,並且盡量保持每條產品線介面一致,從而可以從同乙個抽象工廠繼承。

一、簡單工廠

簡單工廠模式中工廠為具體工廠,產品為抽象產品,由工廠例項建立產品例項。

二、工廠方法

工廠方法中有抽象的工廠類,一種抽象的產品類,而工廠類中僅建立此抽象產品類的例項,具體產品例項由具體的工廠類建立。

三、抽象工廠

抽象工廠建立多類產品,可將這些產品理解為一套相關的產品,由工廠在建立時一起建立,每類產品有不同的例項。實踐中一般會用反射來建立工廠的例項,配合配置檔案或依賴注入容器來避免建立不同產品時還需要修改客戶端**,即符合「修改封閉,擴充套件開放原則」,一點拙見,歡迎指正。

以下**terrylee的部落格:

概述在軟體系統中,經常面臨著「一系列相互依賴的物件」的建立工作;同時由於需求的變化,往往存在著更多系列物件的建立工作。如何應對這種變化?如何繞過常規的物件的建立方法(new),提供一種「封裝機制」來避免客戶程式和這種「多系列具體物件建立工作」的緊耦合?這就是我們要說的抽象工廠模式。

意圖提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。

模型圖邏輯模型:

物理模型:

工廠方法和抽象工廠區別

簡單工廠 簡單工廠沒有抽象類,只有乙個具體工廠類如myfactory,myfactory裡面有個工廠方法createproduct返回乙個基類產品,具體返回什麼例項通過傳入引數判斷。用手機生產做個例子 比如nokia簡單工廠就是只有nokiafactory工廠類,工廠方法就是createnokiap...

簡單工廠 工廠方法 和抽象工廠區別

簡單工廠 factory pattern 簡單工廠模式,把物件 統一介面 的建立封裝起來,而不去用了解物件所代表的真正的實現類及其初始化過程。我們只需要把引數傳遞給簡單工廠,工廠就會根據你的需要返回相應的產品物件。示例 如下 對不同的產品的例項化,由不同的工廠來實現,每一種工廠都是生產特定的產品。但...

簡單工廠 工廠方法 抽象工廠區別與聯絡

工廠模式按照對類的抽象程度可以劃分為如下三種型別 1 簡單工廠模式 factory 2 工廠方法模式 factory method 3 抽象工廠模式 abstract factory 簡單工廠 定義 是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式中包含的角色及其相應的職責如下 抽象產品 ...