/***
**命令链模式:松散耦合为主题,发送消息,命令和请求通过一组命令
**封装一系列操作
** 一条命令被看做只执行了一个函数
********/
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));