PHP 設計模式 命令模式

2021-10-10 05:06:39 字數 1474 閱讀 9502

<?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 命令介面 ...