工廠模式和策略模式的區別

2022-08-11 08:45:10 字數 666 閱讀 1532

首先來乙個工廠模式的例子

class factoryclass{

*  @return classname_abstract //注意這裡最好寫上返回值型別,在zend studio裡邊可以自動提示一些介面,

public static function factory($adapter, $config = array())

if(...)

return new classname1();

else

return new classname2();

再來乙個策略模式:

class strategyclass{

private $_pen;

public function load($config)

$classname=$config['classname'];

$this->_object=new $classname();

public function  write($msg)

$this->_pen->write($msg);

我們看到,兩種模式有明顯區別,工廠模式直接返回給呼叫方乙個不同的物件,而策略模式沒有返回物件而是利用乙個類似**類的概念實現的統一的功能,這也說明:工廠模式適合同一類物件但是功能差別可能比較多的類,策略模式適合那些同類物件但是功能基本差不多的類

工廠模式和策略模式的區別

工廠設計模式,用於建立複雜物件,管理多個不同功能介面 策略模式只是將同一功能的不同實現抽離出來,不需要管理物件 protocol nsobject id map getmap mapview功能 id location getlocation 定位功能 end 實現工廠協議獲取對應的物件 id ma...

策略模式和工廠模式的區別

uml圖 例項在模式結構上,兩者很相似 工廠模式是一種創造模式。戰略模式是一種運營模式。換句話說,工廠模式用於建立特定型別的物件。策略模式用於以特定方式執行乙個操作 或一組操作 在經典示例中,工廠可能會建立不同型別的動物 狗,貓,老虎,而策略模式將執行特定的動作,例如,移動 使用 跑步 步行 或 移...

簡單工廠模式和策略模式的區別

最近一直在抽時間研究設計模式,之前對設計模式也有一定的了解,但是都沒有平心靜氣的去研究過,只是了解了一些皮毛,最近打算再深入研究一下,重新開啟了設計模式的資料,對之前的疑問乙個個的刨根問底,今天看了簡單工廠模式和策略模式看的人有點小暈,兩個的大概思路沒有怎麼變,都是通過多型去減少 的耦合度,怎麼看兩...