命令模式之所以常用的优势就在于可以将请求发送者和接收者完全解耦,而系统解耦是系统的终极目标。
解耦之后调用某些对象的某些方法,并不知道请求的接收者是谁。(推荐学习:php编程从入门到精通)
物联网环境下人工智能发展迅速,现在的智能灯,只需要连接手机就可以轻松操控,冬天躺在床上轻松实施打开关闭。
代码:
<?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命令模式什么意思的详细内容。
