命令链模式解释
来源:互联网 发布:mac边充电边用好吗 编辑:程序博客网 时间:2024/05/20 21:42
<?phpinterface ICommand{ function onCommand( $name, $args );}class CommandChain{ private $_commands = array(); public function addCommand( $cmd ) { $this->_commands []= $cmd; } public function runCommand( $name, $args ) { foreach( $this->_commands as $cmd ) { if ( $cmd->onCommand( $name, $args ) ) return; } }}class UserCommand implements ICommand{ public function onCommand( $name, $args ) { if ( $name != 'addUser' ) return false; echo( "UserCommand handling 'addUser'\n" ); return true; }}class MailCommand implements ICommand{ public function onCommand( $name, $args ) { if ( $name != 'mail' ) return false; echo( "MailCommand handling 'mail'\n" ); return true; }}$cc = new CommandChain();$cc->addCommand( new UserCommand() );$cc->addCommand( new MailCommand() );$cc->runCommand( 'addUser', null );$cc->runCommand( 'mail', null );?>
此代码定义维护 ICommand 对象列表的 CommandChain 类。两个类都可以实现 ICommand 接口 —— 一个对邮件的请求作出响应,另一个对添加用户作出响应。 图 5 给出了 UML。
如果您运行包含某些测试代码的脚本,则会得到以下输出:
% php chain.php
UserCommand handling 'addUser'
MailCommand handling 'mail'
%
代码首先创建 CommandChain 对象,并为它添加两个命令对象的实例。然后运行两个命令以查看谁对这些命令作出了响应。如果命令的名称匹配 UserCommand 或 MailCommand,则代码失败,不发生任何操作。
为处理请求而创建可扩展的架构时,命令链模式很有价值,使用它可以解决许多问题。
一个对象做为中间量,这个对象有一个方法添加其他对象数组,这个对象有另外的方法,来判这些注册的对象怎么处理
- 命令链模式解释
- 设计模式—命令、职责链及解释器模式
- 状态模式、备忘录模式、命令模式,解释器模式
- 23种设计模式4--行为型模式(策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式)
- 23种设计模式4--行为型模式(策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式)
- C#中使用简单工厂模式实现命令解释器
- 解释模式
- "围观"设计模式(31)--行为型设计模式总结(模板、观察者、策略、状态、责任链、命令、访问者、中介者、备忘录、解释器)
- 《大话设计模式》——学习笔记之"行为型模式"(观察者&模板方法&命令&状态&职责链&解释器&中介者&访问者&策略&备忘录&迭代器)
- 命令模式+职责链模式
- 第二十篇 设计模式--解释器链模式
- 命令链模式总结
- php 命令链模式
- PHP命令链模式
- 命令链模式
- Linux命令详细解释
- netstat命令解释
- VIVI命令解释
- 递归
- 简单快速的可用性测试
- 电脑没声音肿么办。。。
- 基于IE与css的表格行头与多层列头锁定方法
- uva10344 - 23 out of 5
- 命令链模式解释
- 解决android4.0系统中菜单(Menu)添加Icon无效问题
- 设计递归函数,求出并输出 Fibnacci 序列
- 13周项目1-递归求奇数连乘的积
- WPF连接SQL数据库,将TextBox中填写的数据插入数据库中,并更新DataGrid表
- Struts2标签<s:iterator>中使用Map
- Tomcat内存的增减
- perl函数中的传引用用法
- JETTY