設計模式隨筆 策略模式與簡單工廠的區別

2021-07-24 19:24:05 字數 1152 閱讀 1462

1. 概述

策略模式:策略模式是對演算法的包裝,是把使用演算法的責任和演算法本身分割開來,委派給不同的物件管理

簡單工廠:專門負責將大量有共同介面的類例項化

兩個模式的大概思路沒有怎麼變,都是通過多型去減少**的耦合度

2. 結構

策略模式

簡單工廠

3. 具體例子

策略類以及產品類就不說了,實現方式都是一樣的:抽象父類,具體實際類。唯一不同的是:策略類的場景類與簡單工廠的工廠類。

策略類的場景類不負責類的建立(具體實現在客戶端),但是簡單工廠類需要建立具體的類。

自我理解: 策略類具體類的實現是客戶端(呼叫者)需要自己去建立的,而簡單工廠是工廠類已經建立好了具體的類,客戶端不需要知道怎麼建立,策略類客戶端需要知道具體類的類名, 工廠類不需要,只需要知道建立類的標誌字段。 通過下面類直接看不同

策略類的場景類

public class context   

public void setrequest(irequest request)

public iresponse sendrequest()

}

簡單工廠的工廠類

public class ******factoryelse if(type.equals("straw"))else if(type.equals("grape"))

return obj;}}

策略模式的客戶端使用

public class client  }
工廠類的客戶端使用

public class client

}

4. 總結

在簡單工廠中,如果增加了新類,那麼這個工廠類也要隨之更改。在策略模式中,雖然context中不用更改,但它的客戶端的**就要更改了,其實實際使用中並不一定分的這麼清楚,具體情況具體對待,實際使用中經常是多種模式組合使

大話設計模式 簡單工廠模式與策略模式

簡單工廠模式 運算類工廠 public class operationfactory case case case case sqr case sqrt case return oper 關聯關係 如下 class penguin bird private climate climate 聚合關係如...

設計模式 簡單工廠模式 策略模式

名詞理解 工廠 factory 模式我們可以做如下理解,假設有乙個audi的公司生產汽車 似乎也不用假設了 它掌握一項核心的技術就是生產汽車,另一方面,它生產的汽車是有不同型號的,並且在 不同的生產線上進行組裝。當客戶通過銷售部門進行預定後,audi公司將在指定的生產線上為客戶生產出它所需要的汽車。...

設計模式之簡單工廠模式,工廠模式,策略模式

簡單工廠模式 的最大優點是在工廠類中包含了必要的邏輯判斷,根據客戶端的選擇動態例項化相關類,去得到客戶想要的產品。但個人覺得簡單工廠模式的最大優點正是產生它最大缺點之處。因為它的工廠類違反了開放 封閉原則 類,模組,方法等對於擴充套件是開放的,對於更改是封閉的。每當新增乙個功能,我們就需要去修改它的...