首先來乙個工廠模式的例子
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圖 例項在模式結構上,兩者很相似 工廠模式是一種創造模式。戰略模式是一種運營模式。換句話說,工廠模式用於建立特定型別的物件。策略模式用於以特定方式執行乙個操作 或一組操作 在經典示例中,工廠可能會建立不同型別的動物 狗,貓,老虎,而策略模式將執行特定的動作,例如,移動 使用 跑步 步行 或 移...
簡單工廠模式和策略模式的區別
最近一直在抽時間研究設計模式,之前對設計模式也有一定的了解,但是都沒有平心靜氣的去研究過,只是了解了一些皮毛,最近打算再深入研究一下,重新開啟了設計模式的資料,對之前的疑問乙個個的刨根問底,今天看了簡單工廠模式和策略模式看的人有點小暈,兩個的大概思路沒有怎麼變,都是通過多型去減少 的耦合度,怎麼看兩...