<?php
/** * 命令模式(command pattern)是一種資料驅動的設計模式,它屬於行為型模式。請求以命令的形式包裹在物件中,並傳給呼叫物件。
* 呼叫物件尋找可以處理該命令的合適的物件,並把該命令傳給相應的物件,該物件執行命令。
* * 意圖:將乙個請求封裝成乙個物件,從而使您可以用不同的請求對客戶進行引數化。
* 主要解決:在軟體系統中,行為請求者與行為實現者通常是一種緊耦合的關係,但某些場合,比如需要對行為進行記錄、撤銷或重做、事務等處理時,這種無法抵禦變化的緊耦合的設計就不太合適。
* */
/** * inte***ce order
*/inte***ce
order
/** * class stock
*/class
stock
, quantity:
] bought"
.php_eol;}
public
function
sell()
, quantity:
] sold"
.php_eol;}
}/**
* class buystock
*/class
buystock
implements
order
public
function
execute()
}/**
* class sellstock
*/class
sellstock
implements
order
public
function
execute()
}/**
* class broker
*/class
broker
public
function
placeorders()
$this
->
orderlist
=null;}
}$abcstock
=new
stock()
;$broker
=new
broker()
;$buystockorder
=new
buystock
($abcstock);
$sellstockorder
=new
sellstock
($abcstock);
$broker
->
takeorder
($buystockorder);
$broker
->
takeorder
($sellstockorder);
$broker
->
placeorders()
;
PHP設計模式 命令模式
宣告 本系列部落格參考資料 大話設計模式 作者程杰。命令模式 在軟體系統中,行為請求者 與 行為實現者 通常呈現一種 緊耦合 但在某些場合,比如要對行為進行 記錄 撤銷 重做 事務 等處理,這種無法抵禦變化的緊耦合是不合適的。在這種情況下,如何將 行為請求者 與 行為實現者 解耦?將一組行為抽象為物...
PHP設計模式 命令模式
宣告 本系列部落格參考資料 大話設計模式 作者程杰。命令模式 在軟體系統中,行為請求者 與 行為實現者 通常呈現一種 緊耦合 但在某些場合,比如要對行為進行 記錄 撤銷 重做 事務 等處理,這種無法抵禦變化的緊耦合是不合適的。在這種情況下,如何將 行為請求者 與 行為實現者 解耦?將一組行為抽象為物...
PHP設計模式之命令模式
將來自客戶端的請求傳入乙個物件,從而使你可用不同的請求對客戶進行引數化。用於 行為請求者 與 行為實現者 解耦,可實現二者之間的松耦合,以便適應變化。如下 header content type text html charset uft 8 命令模式 inte ce validator 命令介面 ...