如何php用uf语句执行php文件,php 命令模式

本文介绍了命令设计模式的概念,它用于将请求封装为对象,以便于参数化客户、请求日志记录和撤销操作。命令模式通过分离请求发起者与执行者,实现了两者之间的解耦。具体命令角色负责调用接收者的行动方法,而接收者执行实际操作。在给定的代码示例中,展示了如何创建命令、接收者、请求者和客户角色,并演示了它们之间的交互。
摘要由CSDN通过智能技术生成

/*

命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;

对请求排队或记录请求日志,以及支持可撤销的操作。

命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分开,委派

给不同的对象。

请求的一方发出请求要求执行一个操作;接受的一方受到请求,并执行操作。命令模式

允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收的一方的接口,更

不必知道请求是怎么被接收的,以及操作是否被执行、何时被执行,以及是怎么被执行的。

命令(Command)角色:声明了一个给所有具体命令类的抽象接口。这是一个抽象角色。

具体命令(ConcreteCommand)角色:定义一个接受者和行为之间的弱耦合;实现Execute()方法,

负责调用接收者的相应操作。Execute()方法通常叫做执行方法。

客户(Client)角色:创建了一个具体命令(ConcreteCommand)对象并确定其接收者。

请求者(Invoker)角色:负责调用命令对象执行请求,相关的方法叫做行动方法。

接收者(Receiver)角色:负责具体实施和执行一个请求。任何一个类都可以成为接收者,

实施和执行请求的方法叫做行动方法。

*/

/**

*命令接口

*@author li.yonghuan

*@version 2014.01.28

*

*/

interface Command {

/**

*执行方法

*

*/

public function execute();

}

/**

*具体命令角色

*@author li.yonghuan

*@version 2014.01.28

*/

class ConcreteCommand implements Command {

/**

*接收者

*@var $receiver Receiver object

*/

private $receiver;

/**

*构造方法

*@param $receiver Receiver

*

*/

public function __construct( Receiver $receiver ) {

$this->receiver = $receiver;

}

/**

*执行方法

*调用接收者的行动方法

*/

public function execute() {

$this->receiver->action();

}

}

/**

*接收者

*@author li.yonghuan

*@version 2014.01.28

*/

class Receiver {

/**

*接收者名称

*@var string

*/

private $name;

/**

*构造方法

*@param $name string

*/

public function __construct( $name ) {

$this->name = $name;

}

/**

*行动方法

*

*/

public function action() {

echo $this->name.' do action';

}

}

/**

*请求者

*@author li.yonghuan

*@version 2014.01.28

*/

class Invoker {

/**

*调用的命令

*@var Command

*/

private $command;

/**

*构造方法

*@param $command Command

*/

public function __construct( Command $command ) {

$this->command = $command;

}

/**

*行动方法

*调用命令对象的执行方法

*/

public function action() {

$this->command->execute();

}

}

/**

*客户端

*@author li.yonghuan

*@version 2014.01.28

*/

class Client {

/**

*main program

*

*/

public static function main() {

$receiver = new Receiver('phpobj');

$command = new ConcreteCommand($receiver);

$invoker = new Invoker( $command );

$invoker->action();

}

}

//测试

Client::main();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值