<?php
inte***ce icommand
class commandchain
public function runcommand( $name, $args )
}}class usercommand implements icommand
}class mailcommand implements icommand
}$cc = new commandchain();
$cc->addcommand( new usercommand() );
$cc->addcommand( new mailcommand() );
$cc->runcommand( 'adduser', null );
$cc->runcommand( 'mail', null );
?>
此**定義維護 icommand 物件列表的 commandchain 類。兩個類都可以實現 icommand 介面 —— 乙個對郵件的請求作出響應,另乙個對新增使用者作出響應。 圖 5 給出了 uml。
如果您執行包含某些測試**的指令碼,則會得到以下輸出:
% php chain.php
usercommand handling 'adduser'
mailcommand handling 'mail'
%**首先建立 commandchain 物件,並為它新增兩個命令物件的例項。然後執行兩個命令以檢視誰對這些命令作出了響應。如果命令的名稱匹配 usercommand 或 mailcommand,則**失敗,不發生任何操作。
為處理請求而建立可擴充套件的架構時,命令鏈模式很有價值,使用它可以解決許多問題。
乙個物件做為中間量,這個物件有乙個方法新增其他物件陣列,這個物件有另外的方法,來判這些註冊的物件怎麼處理
行為型 命令模式 直譯器模式 中介模式
命令模式 直譯器模式 中介模式。這 3 個模式使用頻率低 理解難度大 命令模式 定義 命令模式將請求 命令 封裝為乙個物件,這樣可以使用不同的請求引數化其他物件 將不同請求依賴注入到其他物件 使用場景 比如,非同步 延遲 排隊執行命令 撤銷重做命令 儲存命令 給命令記錄日誌 ps 和策略模式,工廠模...
php設計模式之命令鏈模式
1.命令連模式可以使用在使用者登陸註冊的時候處理不同角色使用者的業務邏輯,與變數值 command inte ce inte ce mycommand user register class register public function runcommand name,args common l...
狀態模式 備忘錄模式 命令模式,直譯器模式
狀態模式 備忘錄模式 命令模式,直譯器模式,這個四個模式比較容易忘記 狀態模式 根據不同狀態行為不一樣,這個模式,是一種新思路,很有技巧 適用於if else很多狀態判轉移的場景 備忘錄模式 將物件a中需要儲存的狀態,作為乙個新物件s,傳給另乙個物件b 解析器模式 雖然知道是解析用的,但是不理解?原...