/***

**命令链模式:松散耦合为主题,发送消息,命令和请求通过一组命令

**封装一系列操作

** 一条命令被看做只执行了一个函数

********/

Interface ICommand{

function isValue($val);

}

class CommonClain{

private $_command;

public function __construct(ICommand $value){

$this->_command = $value;

}

public function execCommand($param){

foreach($param as $key =>$val){

$this->_command->isValue($val);

}

}

}

class doCommand implements ICommand{

public function isValue($val){

if($val){

echo $val.'\n';

}

}

}

class famCommand implements ICommand{

public function isValue($val){

if($val != 'famCommand'){

return 'famCommand';

}

}

}

$claim = new CommonClain(new doCommand());

echo $claim->execCommand(array(1,22,33,44,55));

php 命令链模式,设计模式之------命令链模式相关推荐

  1. java 访客模式,设计模式 - 访客模式( Visitor Pattern)

    设计模式 - 访客模式( Visitor Pattern) 在Visitor模式中,我们使用一个访问者类来更改元素类的执行算法. 通过这种方式,元素的执行算法可以随着访问者的变化而变化. 此模式属于行 ...

  2. 抽象工厂模式设计模式_创新设计模式:抽象工厂模式

    抽象工厂模式设计模式 抽象工厂模式是一种创新模式,是与构建器和工厂模式一起最受欢迎的模式之一. 使用创建模式是为了创建对象,而不是直接使用构造函数创建对象. 抽象工厂模式提供了一种封装一组具有共同主题 ...

  3. 设计模式回顾——模板模式(C++)

    文章目录 1 前言 2 什么是模板模式 2.1 模板模式组成 2.2 模板模式UML图 2.3 模板模式作用 3 模板模式优缺点 4 什么地方使用模板模式 5 模板模式实现 6 模板模式与策略模式比较 ...

  4. 设计模式之工厂模式(Factory)

    设计模式之工厂模式 设计模式之工厂模式 简介 代码准备 需求一 需求二 简单工厂 工厂方法 抽象工厂 需求三 总结 设计模式之工厂模式 简介 工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可 ...

  5. 设计模式回顾——原型模式(C++)

    文章目录 1 前言 2 什么是原型模式 2.1 原型模式组成 2.2 原型模式UML图 2.3 原型模式作用 3 原型模式优缺点 4 什么地方使用原型模式 5 原型模式实现 6 原型模式与构造函数 1 ...

  6. Java设计模式之策略模式+工厂模式+模板模式

    Java设计模式之策略模式+工厂模式+模板模式 1.策略模式+工厂模式+模板模式 个人的理解:实际开发工程中,一些业务很复杂的逻辑使用很多的 if 或者 if···else 语句,不利于维护和扩展,为 ...

  7. Java 设计模式_代理模式(2016-08-19)

    概念: 代理模式是对象的结构模式.代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用. 就是一个人或者机构代表另一个人或者机构采取行动.在一些情况下,一个客户不想或者不能够直接引用一 ...

  8. 抽象工厂模式 java实例 tclhaier_Unity常用的设计模式_工厂模式系列之抽象工厂模式...

    在工厂方法模式中,工厂只负责生产具体的产品,每一个具体的工厂对应着一个具体的产品,工厂方法也具有唯一性,如果有时候我们需要一个工厂方法提供多个产品而不是一个单一的产品,例如:海尔品牌不止生产海尔TV, ...

  9. java设计模式中不属于创建型模式_23种设计模式第二篇:java工厂模式定义:工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式...

    23种设计模式第二篇:java工厂模式 定义: 工厂模式是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 工厂模式主要是为创建对象提供过渡接口, ...

最新文章

  1. 重磅 | 最全PPT实录!英伟达发布可编程AI推理加速器TensorRT
  2. 手把手教你在Tensorflow实现BEGAN 达到惊人的人脸图像生成效果
  3. Oracle instant client安装与设置 - Windows版,可用WIN7
  4. [WCF编程]2.SOA概述
  5. ACM_无聊者序列(斐波那契数列大数取余(同余)+规律)
  6. System.Diagnostics.Process 执行.EXE
  7. Redis系列二、redis的五种数据结构和相关指令之String
  8. python 给类添加属性_python – 如何动态添加属性到类中?
  9. 详解MariaDB数据库的事务
  10. P1090 合并果子
  11. 算法:Sliding Window Maximum(滑动窗口最大值)
  12. 【处理手记】VS2010SP1安装不上Visual Studio 2010 SP1 SDK的解决办法
  13. cas4.x 单点登录开发入门
  14. 大数据,云计算,人工智能之间的关系
  15. Django项目实战——10—(修改地址前后端逻辑、删除地址前后端逻辑、设置默认地址、修改密码、虚拟机安装docker/FastDFS、电商-商品知识、首页广告数据库表分析、商品信息数据库表分析)
  16. 2022邮件群发软件哪个好,群发邮件软件推荐
  17. HFDS命令行操作(开发重点)
  18. [教你警告消除]Warning[Pe1072]: a declaration cannot have a label!
  19. c语言中对用户乱输入信息处理,C语言程序设计教程 第06章.ppt
  20. Tair分布式锁 实践经验(160805更新)

热门文章

  1. 有趣的js匿名函数写法(function嵌套)
  2. Angular网络请求的封装
  3. CSS实现单行与多行文字省略(truncation)
  4. python之pyqt5-第一个pyqt5程序-图像压缩工具(2.0版本)-小记
  5. Unity3D入门其实很简单
  6. 【链接】Linux C/C++ 学习路线-已拿腾讯、百度 offer
  7. docker 出现 Error response from daemon
  8. Redis配置文件配置
  9. oracle11g 修改字符集 修改为ZHS16GBK
  10. MySQL数据库安全配置