注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

php开发lamp

《西安--木木》-经历丰富了生活。 架构师QQ群: 246695517

 
 
 

日志

 
 

命令模式Command  

2018-03-12 14:22:51|  分类: 设计模式--php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

<?php
/**
*命令模式Command

*命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。
*/
/**
* 定义一个命令抽象类
*/
abstract class Command
{

/**
* 执行命令
*/
public function execute(){}

/**
* 撤销命令
*/
public function undo(){}
}

/**
* 具体命令(ConcreteCommand)
*/
class ConcreteCommand extends Command
{

private $rec = null;

public function __construct(Receiver $rec)
{
$this->rec = $rec;
}

/**
* 执行命令
*/
public function execute()
{
$this->rec->add();
$this->rec->update();
}

/**
* 撤销命令
*/
public function undo()
{
$this->rec->del();
}
}

/**
* 接收者(Receiver)
*/
class Receiver
{
public function add()
{
echo '添加';
}

public function del()
{
echo '删除';
}

public function update()
{
echo '修改';
}

}

/**
* 调用者(Invoker)
*/
class Invoker
{

private $command = null;

public function setCommand(Command $command)
{
$this->command = $command;
}

public function action()
{
$this->command->execute();
}
}

//客户端
$receiver = new Receiver();
$command = new ConcreteCommand($receiver);
$invoker = new Invoker();

$invoker->setCommand($command);
$invoker->action();


?>




  评论这张
 
阅读(18)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018