工廠方法模式和簡單工廠模式的區別
簡單工廠模式
就我們的計算器例子來說,簡單工廠模式的思想就是,建立一個運算類,建立一個簡單工廠類。
運算類派生加法類、減法類、乘法類......
簡單工廠類主要是根據傳入的符號字串,做相應的條件判斷來建立相應的運算物件。
當我們需要增加運算功能的時候,需要在運算類中派生相應的運運算元類,在簡單工廠類中增加相應的條件判斷。
【在簡單工廠類中增加相應的條件判斷】這一來就違反了設計模式的OCP原則!於是,工廠方法模式就解決了這一問題。
工廠方法模式
工廠方法模式的思想是,建立一個運算類,建立一個工廠類。
運算類派生加法類、減法類、乘法類......
工廠類派生相應的加法工廠,減法工廠、乘法工廠........
實質上就是,把簡單工廠類中“根據傳入的符號字串,做相應的條件判斷來建立相應的運算物件”,分擔到每個派生類裡面,在每個派生工廠類裡面進行相應的運算物件生成操作。
這樣一來,以後我們要增加一個運算功能的時候,就只需要增加運算派生類、增加派生的工廠類即可,而不需要去修改工廠基類的的內容,體現了多擴充套件,少修改的原則。
相關推薦
工廠方法模式和簡單工廠模式的區別
簡單工廠模式 就我們的計算器例子來說,簡單工廠模式的思想就是,建立一個運算類,建立一個簡單工廠類。 運算類派生加法類、減法類、乘法類...... 簡單工廠類主要是根據傳入的符號字串,做相應的條件判斷來建立相應的運算物件。 當我們需要增加運算功能的時候,需要在運算類中派生相應的運運
策略模式和簡單工廠模式的區別
直接上程式碼: 簡單工廠模式: ------------------------------1個抽象類 --------------------------abstract class AbsClass { //抽象方法:提供一些列的演算法操作
策略模式和簡單工廠(四)
設計模式 策略模式 簡單工廠 策略模式由前端觸發決定使用某一組算法或邏輯,每一組算法或邏輯不相同,互相不幹擾。最後交由一個上下文具體去執行,並可以增加一定公有邏輯。比如某電商平臺搞活動:普通會員:滿100減10塊白銀會員:滿100減15塊 送積分黃金會員:滿100減18塊 送積分 參與抽獎鉆
java設計模式之策略模式和簡單工廠模式
簡單工廠模式:將物件交由工廠來生成。 策略模式: 主要與演算法有關。 定義了演算法家族,分別封裝起來,讓它們直接可以相互替換,此模式讓演算法的變化,不會影響到使用演算法的客戶。 與簡單工廠模式相結合
【設計模式】簡單工廠模式和工廠方法模式
產生 for plm nbsp osc rbm play stp mage > 簡單工廠模式 顧名思義,此模式的設計結構是簡單的,核心是生產對象。 一般來說,運用工廠模式生產的對象應該是構建對象的過程比較復雜的,獲取構建對象的過程在日後可能發生變更的。 簡單工廠
簡單工廠模式、工廠模式和抽象工廠模式區別
下面例子中滑鼠,鍵盤,耳麥為產品,惠普,戴爾為工廠。 簡單工廠模式(面向單個產品,不符合開閉原則,要點:產品面向介面) 簡單工廠模式不是 23 種裡的一種,簡而言之,就是有一個專門生產某個產品的類。 比如下圖中的滑鼠工廠,專業生產滑鼠,給引數 0,生產戴爾滑鼠,給引數
【C++設計模式】簡單工廠和工廠方法
#ifndef __FACTORYMETHOD_H__ #define __FACTORYMETHOD_H__ #include <iostream> #include <str
Java中常見的設計模式---簡單工廠模式、工廠方法模式和單例模式
在講設計模式之前,我們首先來說一下面向物件思想的設計原則,在實際的開發中,我們要想更深入的瞭解面向物件思想,就必須熟悉前人總結過的面向物件的思想的設計原則:1.單一職責原則:“高內聚,低耦合”,也就是說,每個類應該只有一個職責,對外只能提供一種功能,而引起類變化的原因應該只有
【設計模式】簡單工廠、工廠方法與抽象工廠的區別
前言 為什麼會出現工廠,工廠方法與簡單工廠還有抽象工廠到底有啥區別,什麼時候能用到這些呢,如果你對於這些不是很清晰,那麼你可以看看小編的這篇部落格! 這裡所有的類圖均用基本演算法為例子,這樣會有明顯的對比! 一、簡單工廠模式 1、我們在例項化物件的時候通
簡單工廠模式,工廠模式和抽象工廠的區別
簡單工廠模式簡單工廠模式不是23種裡的一種,簡而言之,就是有一個專門生產某個產品的類。比如下圖中的滑鼠工廠,專業生產滑鼠,給引數0,生產戴爾滑鼠,給引數1,生產惠普滑鼠。工廠模式工廠模式也就是滑鼠工廠是個父類,有生產滑鼠這個介面。戴爾滑鼠工廠,惠普滑鼠工廠繼承它,可以分別生產
設計模式:簡單工廠、工廠方法、抽象工廠之小結與區別
簡單工廠,工廠方法,抽象工廠都屬於設計模式中的建立型模式。其主要功能都是幫助我們把物件的例項化部分抽取了出來,優化了系統的架構,並且增強了系統的擴充套件性。 本文是本人對這三種模式學習後的一個小結以及對他們之間的區別的理解。 簡單工廠 簡單工廠模式的工廠類一般是使
簡單工廠模式、工廠模式和抽象工廠模式區別及優缺點
各位小夥伴好,今天給大家主要介紹一下簡單工廠模式、工廠模式和抽象工廠模式的區別及各自的優缺點。 (本文實現語言為Python3) 【前言】 眾所周知今天所講的內容是設計模式的一類;對於設計模式這個概念,我想首先請大家問問自己:1、什麼是設計模式 2、我們為什麼要了解並學習設計模式? 從我上學的時候我相信大家跟
設計模式系列---簡單工廠、工廠方法、抽象工廠
nds top exc .cn 原則 而在 類圖 opp sop 前言,最近看spring的源代碼。發現之前沒有完全弄懂(工廠方法、抽象工廠)的區別。 spring中代理對象的產生,是通過代理工廠(工廠模式),首先spring中的代理是使用jdk或者cglib的代理,只要看
【設計模式】簡單工廠模式 |工廠方法模式 |抽象工廠模式
簡單工廠模式 由三種角色組成: 1、工廠類角色:是簡單工廠模式的核心,含有一定的商業邏輯和判斷邏輯。 2、抽象產品角色:一般是具體產品繼承的父類或者實現的介面。 3、具體產品角色:工廠類所建立的物件就是此角色的例項。 用一個單獨的類來做這個創在例項的過程,這就
Java設計模式(一)之建立型模式:工廠模式(簡單工廠模式+工廠方法模式)
在面向物件程式設計中, 最通常的方法是一個new操作符產生一個物件例項,new操作符就是用來構造物件例項的。但是在一些情況下, new操作符直接生成物件會帶來一些問題。舉例來說,許多型別物件的建立需要一系列的步驟:你可能需要計算或取得物件的初始位置;選擇生成哪個子物件例項;或在你生成你需要的物件
設計模式學習筆記(5) --計算器的設計模式(簡單工廠,工廠方法)
1.面向過程的計算器 package com.skiff.www.factory.calculator; import java.util.Scanner; /** * @Auther: 一葉扁舟 * @Date: 2018/11/1 20:23 * @Description: 簡單
簡單工廠、工廠模式和抽象工廠
工廠可以分為三種:簡單工廠、工廠模式和抽象工廠,三者的關係是遞進的,以做包子為例,剛開始只有兩種包子:豆腐包和牛肉包,可以使用簡單工廠(或者叫靜態工廠)來解決,隨著包子種類的越來越多,發現沒新增一種包子,就需要改工廠類,擴充套件性太差,因此出現了工廠模式,提取一個公共的做包子介面,然後針對每一種包子建一個
【設計模式-4】工廠模式(簡單工廠,工廠方法,抽象工廠)
簡單工廠模式(Simple Factory) 簡單工廠模式(Simple Factory Pattern):又稱為靜態工廠方法(Static Factory Method)模式。在簡單工廠模式中,可以根據引數的不同返回不同類的例項。簡單工廠模式專門定義一個類來負責建立其
工廠模式(簡單工廠、工廠方法、抽象工廠)
簡單工廠模式 定義 簡單工廠模式又稱靜態工廠方法模式,它是由一個工廠角色統一建立不同的物件,但這些物件都繼承自同一個類。 結構 1.工廠角色:根據傳入不同的引數,例項化對應的具體類。 2.具體角色:工廠類返回的物件,它們繼承自同一個父類。 3.父類:它是所有具體角
設計模式之工廠模式(工廠方法模式、簡單工廠模式、抽象工廠模式)
工廠模式 工廠模式是最常用的設計模式之一,這種型別的設計模式屬於建立設計模式,它提供了一種建立物件的最佳方式。 優點:1、一個呼叫者想建立一個物件,只要知道其名稱就可以了。 2、擴充套件性高,如果想要增加多一個產品,只要擴充套件一個工廠類就可以了。 3、隱蔽產品的具體實現,呼叫者只要關係產品的介面。 程