1. 使用场景
1. 命令连模式可以使用在用户登陆注册的时候处理不同角色用户的业务逻辑,与变量值
<?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 );

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
PHP设计模式之责任链模式
责任链模式,属于对象行为型的设计模式。Gof类图及解释GoF定义:使多个对象都有机会处理请求,从而避免请求的发送者和
php 设计模式 教程 责任链 请求参数