簡單工廠,工廠方法與抽象工廠區別體會

2022-02-02 20:48:26 字數 895 閱讀 3012

設計模式作為程式設計師的內功心法,相信每個寫過oop**的都不會陌生,不過有些模式之間既有區別,又有聯絡,我們來看看簡單工廠,工廠方法與抽象工廠的區別和聯絡。

一、簡單工廠

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

二、工廠方法

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

三、抽象工廠

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

以下**terrylee的部落格:

概述

在軟體系統中,經常面臨著「一系列相互依賴的物件」的建立工作;同時由於需求的變化,往往存在著更多系列物件的建立工作。如何應對這種變化?如何繞過常規的物件的建立方法(

new),提供一種「封裝機制」來避免客戶程式和這種「多系列具體物件建立工作」的緊耦合?這就是我們要說的抽象工廠模式。

意圖

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

模型圖

邏輯模型:

物理模型:

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

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

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

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

工廠方法和抽象工廠區別

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