设计模式——命令模式

说明

示例

下面看下命令模式的代码实现

// 创建接口Command
interface Command{
public function exe();
}

class Receiver{
public function action(){
echo "command received!";
}
}

// 类MyCommand实现接口Command
class MyCommand implements Command{
private Receiver $receiver;
public function __construct(Receiver $receiver){
$this->receiver = $receiver;
}

public function exe(){
$this->receiver->action();
}
}

class Invoker{
private Command $command;
public function __construct(Command $command){
$this->command = $command;
}
public function action(){
$this->command->exe();
}
}


// 调用
$receiver = new Receiver();
$cmd = new MyCommand($receiver);
$invoker = new Invoker($cmd);
$invoker->action();
// output: command received!

总结


文章作者: Crazy Boy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Crazy Boy !
赏

留言

想法、疑问或勘误,都可以写在这里。留言会公开显示。

正在准备留言区…

 上一篇
设计模式——原型模式 设计模式——原型模式
说明 将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。 示例 下面看下原型模式的代码实现 总结 特点:减少创建对象时的开销
2022-05-19
下一篇 
设计模式——外观模式 设计模式——外观模式
说明 外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启
2022-05-19