
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指令模式的理解,希望對大家有幫助。