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

2021-10-06 16:42:46 字數 1138 閱讀 2126

簡單工廠模式將物件的建立與使用解耦,由工廠負責建立具體物件,應用需要物件時只需呼叫工廠類的api即可。

比如編寫乙個計算器、可使用工廠模式

如上圖所示,加減乘除分別繼承operation類,重寫getresult方法。

compute***ctory為工廠類

public

class

compute***ctory

return operation;

}}

計算器工廠可根據操作符返回具體的操作類,實現應用和物件建立的解耦。

雖然簡單工廠模式實現了物件建立和應用的解耦,但當需求頻繁發生變化是,比如需要新增乙個sqrt運算,這種問題可用策略模式解決。

策略模式(strategy),定義了一組演算法,將每個演算法都封裝起來,並且使它們之間可以互換。uml結構圖如下。

context上下文

context上下文角色,也叫context封裝角色,起承上啟下的作用,遮蔽高層模組對策略、演算法的直接訪問,封裝可能存在的變化,計算器的context如下

public

class

context

}//由context執行封裝好的演算法

public

double

dowork

(int num1,

int num2)

}

strategy就是計算器中的operation。

public

class

main

工廠模式中只管生產例項,具體怎麼使用工廠例項由呼叫方決定,策略模式是將生成例項的使用策略放在策略類中配置後才提供呼叫方使用。 工廠模式呼叫方可以直接呼叫工廠例項的方法屬性等,策略模式不能直接呼叫例項的方法屬性,需要在策略類中封裝策略後呼叫。

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

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

設計模式 工廠模式(簡單工廠模式和方法工廠模式)

一 簡單工廠模式 簡單工廠模式概述 又叫靜態工廠方法模式,它定義乙個具體的工廠類負責建立一些類的例項 優點 客戶端不需要在負責物件的建立,從而明確了各個類的職責 缺點 這個靜態工廠類負責所有物件的建立,如果有新的物件增加,或者某些物件的建立方式不同,就需要不斷的修改工廠類,不利於後期的維護 動物類 ...

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

模式的核心是工廠類,這個類負責產品的建立,而客戶端可以免去產品建立的責任,這實現了責任的分割。但由於工廠類集中了所有產品建立邏輯的,如果不能正常工作的話會對系統造成很大的影響。如果增加新產品必須修改工廠角色的原始碼改工廠角色的原始碼。個人理解就是在乙個工廠內 工廠類 定義好規範標準 父類,虛方法 然...