1.把請求封裝成一個對象,允許使用不同的請求來參數化客戶。對請求進行排隊或記錄請求日誌,並支援可撤銷動作。
2、組成命令抽象類別、具體命令類別等。
命令抽象類,用來聲明執行操作的介面。
具體命令類,將一個接收者物件綁定於一個動作,呼叫接收者對應的操作。
命令發送者,要求該命令執行這個請求。
命令接收者,知道如何實施與執行一個請求相關的操作,任何類別都可能作為一個接收者。
客戶端程式碼,建立一個具體命令物件並設定它的接收者。
實例
<?php //命令抽象類別abstract class Command{ //執行方法abstract function Excute(); } //具體命令類別-可以依不同情況有多個繼承特定類別class ConcreteCommand extends Command{ private $Receiver; function __construct(Receiver $Receiver) { $this->Receiver = $Receiver; } function Excute() { $this->Receiver->DoSomething(); } } //接受者類別class Receiver{ //定義接受者要做的事情,可以有很多function DoSomething() { echo "Receiver do something."; } } //呼叫者class Invoker{ private $Command; function __construct(Command $Command) { $this->Command = $Command; } function Action() { $this->Command->Excute(); } } //呼叫//不使用呼叫者類別呼叫$Receiver = new Receiver(); $Command = new ConcreteCommand($Receiver); $Command->Excute(); //使用呼叫者類別$Invoker = new Invoker($Command); $Invoker->Action(); ?>
以上就是php指令模式的理解,希望對大家有幫助。