首页 >后端开发 >PHP问题 > 正文

php命令模式什么意思

原创2019-09-23 09:12:410861
命令模式(Command)是一种非常常用的设计模式,其本质是对命令进行封装,将发出命令的责任和执行命令的责任分割开,降低对象之间的耦合度,新的命令可以很容易地加入到系统中。

命令模式之所以常用的优势就在于可以将请求发送者和接收者完全解耦,而系统解耦是系统的终极目标。

解耦之后调用某些对象的某些方法,并不知道请求的接收者是谁。(推荐学习: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命令模式什么意思的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:php
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    作者信息
    推荐视频教程
  • PHP架构师相关课程视频教程PHP架构师相关课程视频教程
  • ThinkPHP5基础讲解视频教程ThinkPHP5基础讲解视频教程
  • PHP框架系统学习视频教程PHP框架系统学习视频教程
  • 视频教程分类