3種工廠模式的比較
簡單工廠:
一個具體工廠通過條件語句建立多個產品,產品的建立邏輯集中與一個工廠類。
客戶端通過傳不同的引數給工廠,實現建立不同產品的目的
增加新產品時,需要修改工廠類、增加產品類,不符合OCP原則
工廠方法:
一個工廠建立一個產品,所有的具體工廠繼承自一個抽象工廠。
客戶端先建立不同產品的工廠,再由工廠建立具體產品,產品的建立邏輯分散在每個具體工廠類中。
客戶端只依賴於抽象工廠與抽象產品,不依賴任何具體的工廠與具體產品
增加新產品時,需要增加工廠類和產品類,符合OCP原則
抽象工廠:
一個具體工廠建立一個產品族,一個產品族是不同系列產品的組合,產品的建立的邏輯分在在每個具體工廠類中。所有的具體工廠繼承自同一個抽象工廠。
客戶端建立不同產品族的工廠,產品族的工廠建立具體的產品對客戶端是不可見的。
增加新的產品族時,需要增加具體工廠類,符合OCP原則。
增加新產品時,需要修改具體工廠類和增加產品類,不符合OCP原則
如果沒有應對“多系列物件建立”的需求變化,則沒有必要使用抽象工廠模式,這時候使用簡單的靜態工廠完全可以。
上述3種模式都使客戶端脫離了與具體產品的耦合,客戶端不關注具體產品的生產方法。
相關推薦
3種工廠模式的比較
簡單工廠:一個具體工廠通過條件語句建立多個產品,產品的建立邏輯集中與一個工廠類。客戶端通過傳不同的引數給工廠,實現建立不同產品的目的增加新產品時,需要修改工廠類、增加產品類,不符合OCP原則 工廠方法:一個工廠建立一個產品,所有的具體工廠繼承自一個抽象工廠。客戶端先建立不同產
設計模式之3種工廠模式對比和簡單介紹
一、簡單工廠模式 模式定義 簡單工廠模式又稱靜態工廠模式。可以根據引數的不同返回不同類的例項。定義一個類來建立其它類的例項。 模式角色 簡單工廠模式包含如下角色 Factory:工廠角色 Product:抽象產品角色 ConcreteProdu
三種工廠模式的比較
簡單工廠模式:簡單工廠模式最大的優點在於工廠類中包含了必要的判斷邏輯,根據客戶端的條件動態的例項化相關的類,對於客戶端來說去除了對具體產品的依賴工廠模式:定義一個用於建立物件的介面,讓子工廠決定例項化哪
三種工廠模式的優劣比較
在工廠方法模式中,一個具體的工廠類負責建立一個單獨的產品,如果有新的產品加進來,只需要增加一個具體的建立產品工廠類和具體的產品類就可以了,不會影響到已有的其他程式碼,程式碼量也不會變大,後期維護更加容易,增加了系統的可擴充套件性。但是工廠方法模式無法體現產品之間的關係,如果有兩個不同的產品需要建立,就
設計模式——抽象工廠模式及在jdk中的應用+幾種工廠模式的比較
http://ichennan.com/2016/08/09/DesignPattern.html http://blog.csdn.net/liruikqn/article/details/12888511 抽象工廠模式(Abstract Factory)
工廠模式(包含3種工廠)
1.使用場景: 1.類不知道自己要建立哪一個物件 2.類用它的子類來指定建立哪個物件 3.客戶需要清楚建立了哪一個物件 2.三種不同工廠的區別 簡單工廠:針對一種產品。缺點是破壞了開放,封閉原則。 工廠模式: 對簡單工廠做了相應的改進,改正了簡單工廠破壞開放封閉原則的錯誤。
設計模式—三種工廠模式(JAVA)
bsp ati int abs @override 手機 分配 ron size 一:簡單工廠: 有一個實際工廠,這個工廠只能造一類的產品,這一類產品就是一個產品接口,會有多個具體產品實現這個接口,例 如,一個手機廠,生產蘋果手機,三星手機;
Java設計模式(3)——抽象工廠模式
抽象工廠模式 圖片 uml eve 實例 alt pla pub closed 抽象工廠模式是所有形態的工廠模式中最為抽象和最其一般性的。抽象工廠模式可以向客戶端提供一個接口,使得客戶端在不必指定產品的具體類型的情況下,能夠創建多個產品族的產品對象。 一、產品族和產品
c#設計模式3抽象工廠模式(Abstract Factory)
bubuko write col 實現 trac 技術分享 返回 lin 子類 #region 坦克系列 abstract class Tank { abstract public void Go(); } /// &
高階特性 三種工廠模式
簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法(Static Factory Method)模式,但不屬於23種GOF設計模式之一。簡單工廠模式是由一個工廠物件決定創建出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的一個特殊實現。 是通過專門定義一個類來負責建
Java程式設計師從笨鳥到菜鳥之(三十二)大話設計模式(二)設計模式分類和三種工廠模式
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
solidity智慧合約[25]-轉賬的3種方式與比較
轉賬的3種方式 123 address.transfer()address.send()address.call.value().gas()() 轉賬transfer 12345678910 function tran
三種工廠模式總述
工廠模式實現了建立者和呼叫者的分離。 – 詳細分類: 1.簡單工廠模式 2.工廠方法模式 3.抽象工廠模式 工廠模式的核心本質: – 例項化物件,用工廠方法代替new操作。 – 將選擇實現類、建立物件統一管理和控
三種工廠模式的區別
簡單工廠模式 只有一個工廠類,由這一個工廠類根據使用者輸入的條件來決定創建出哪一個產品類的例項。使用者使用這一個工廠類並輸入判斷條件來建立相應的產品類例項。 工廠方法模式 有一個抽象工廠類(或介面),多個具體工廠類繼承(或實現)抽象工廠類。每個具體工廠類只能建立一個具體產品類的例項。由使
工廠模式(3)方法工廠模式
前言:經過前篇文章的學習,大家應該形成一種潛意識,那就是不管什麼設計模式,它的核心目的是為了解決開發中遇到的問題。完美的解決問題則需要遵循一些原則,比如開閉原則、單一原則、里氏替換原則、依賴倒轉原則、 口隔離原則、迪米特法則和合成復用原
java的三種工廠模式
工廠模式是用工廠方法代替了new操作, 將選擇實現類, 建立物件統一管理和控制.從而將呼叫者(Client)與實現類進行解耦.實現了建立者與呼叫者分離; java中的工廠模式又有三種模式,分別是靜態工廠、工廠模式和抽象模式。 使用場景: JDK中Calendar的get
大話設計模式筆記——三種工廠模式對比
簡單工廠模式:建立一個工廠類,在類中通過具體條件選擇例項化哪個類。 工廠方法模式:定義一個用於建立物件的介面,讓子類決定例項化哪一個類。 抽象工廠模式:提供一個建立一系列相關物件的介面,而無需指定他們具體的類。 舉個例子說明這三個模式,目前有一個User類,它有兩
Vivado幾種模擬模式比較
Vivado中的5種模擬模式 1、run behavioral simulation 行為級模擬,也是通常說的功能模擬 2、post-synthesis function simulation綜合後的功能模擬 3、post-synthesis timing simula
深入理解Java的三種工廠模式
一、簡單工廠模式 簡單工廠的定義:提供一個建立物件例項的功能,而無須關心其具體實現。被建立例項的型別可以是介面、抽象類,也可以是具體的類 實現汽車介面 public interface Car { String getName(); } 賓士類 public class Be
iOS 三種工廠模式(簡單工廠模式、工廠模式、抽象工廠模式)
原文轉載 說明:在我理解中,這裡所謂的抽象,其實就是制定某一個介面規範。具體體現在程式碼裡,就是設定一個基類,基類遵守某一套介面規範,但是其具體的實現則通過子類化來完成。當然,這裡我們也可以使用協議來規範這套介面規範。相對的,具體就是具有對抽象做子類化之後產生的實體。 1