您的位置:首页 > 编程语言 > PHP开发

php设计模式之命令链模式

2015-12-10 16:42 721 查看

1. 使用场景

1. 命令连模式可以使用在用户登陆注册的时候处理不同角色用户的业务逻辑,与变量值


2. 代码实例

<?php
/**
* command interface
*
*/
interface MyCommand
{
public function onCommand( $name, $args );
}

//user register
class Register
{
private $_commandsChain = array();

public function addCommand( $cmd )
{
$this->_commandsChain []= $cmd;
}

public function runCommand( $name, $args )
{
foreach( $this->_commandsChain as $cmd )
{
if ($cmd->onCommand( $name, $args )) {
return;
}
}
}
}

//common logic
class CommonCommand implements MyCommand
{
public function onCommand( $name, $args )
{
if ($name != 'common_user' ) {
return false;
}
echo "I am common member\n";
return true;
}
}

//vip logic
class VipCommand implements MyCommand
{
public function onCommand( $name, $args )
{
if ($name != 'vip_user') {
return false;
}
echo "I am vip member\n";
return true;
}
}

//实例化注册器
$cc = new Register();
//运行普通用户的处理逻辑
$cc->addCommand( new CommonCommand() );
//运行高级用户的处理逻辑
$cc->addCommand( new VipCommand() );
//运行普通用户的处理逻辑
$cc->runCommand( 'common_user', null );
//运行高级用户的处理逻辑
$cc->runCommand( 'vip_user', null );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: