本篇主要介紹php指令模式詳解及案例,有興趣的朋友參考下,希望對大家有幫助。
指令模式(Command)是一種非常常用的設計模式,
其本質是對指令進行封裝,將發出指令的責任和執行指令的責任分割開,降低物件之間的耦合度,新的命令可以很容易地加入到系統中。
指令模式之所以常用的優點就在於可以將請求傳送者和接收者完全解耦,而係統解耦是系統的終極目標。
解耦之後呼叫某些物件的某些方法,並不知道請求的接收者是誰。
物聯網環境下人工智慧發展迅速,現在的智慧燈,只需要連接手機就可以輕鬆操控,冬天躺在床上輕鬆實施開啟關閉。
<?php header("Content-Type:text/html;charset=utf-8"); require_once "Command.php"; // 智能灯 $lamp = new Lamp(); // 开灯命令 $on = new onCommand($lamp); // 关灯命令 $off = new offCommand($lamp); // 控制器类 请求者 不用知道对象是谁 $_c = new Control($on,$off); $_c->turnOn(); // 开灯方法 $_c->turnOff(); // 关灯方法
<?php // 智能灯类 Class Lamp { /** * 开灯方法 * @access public */ public function TurnOn() { echo "已帮您打开智能灯<br/>"; } /** * 关灯方法 * @access public */ public function TurnOff() { echo "已帮您关闭智能灯<br/>"; } } // 命令抽象总类 abstract Class ICommand { /** * 抽象执行方法 * @access public */ abstract public function Execute(); } // 开灯命令 Class onCommand extends ICommand { /** * 智能灯对象 * @var object private */ private $_lamp; /** * 构造函数 * @access public * @param object $lamp 智能灯对象 */ function __construct($lamp) { $this->_lamp = $lamp; } /** * 开灯执行方法 * @access public */ function Execute() { $this->_lamp->TurnOn(); } } // 关灯命令 Class offCommand extends ICommand { /** * 智能灯对象 * @var object private */ private $_lamp; /** * 构造函数 * @access public * @param object $lamp 智能灯对象 */ function __construct($lamp) { $this->_lamp = $lamp; } /** * 关灯执行方法 * @access public */ function Execute() { $this->_lamp->TurnOff(); } } // 遥控器类 Class Control { /** * 开灯命令对象 * @var object private */ private $_on; /** * 关灯命令对象 * @var object private */ private $_off; /** * 构造函数 * @access public * @param object $on 开灯对象 * @param object $off 关灯对象 */ function __construct($on,$off) { $this->_on = $on; $this->_off = $off; } /** * 开灯函数 * @access public */ function turnOn() { $this->_on->Execute(); } /** * 关灯函数 * @access public */ function turnOff() { $this->_off->Execute(); } }
相關推薦:
以上是php指令模式詳解及案例的詳細內容。更多資訊請關注PHP中文網其他相關文章!