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

[php]php设计模式 State (状态模式)

2011-06-21 00:08 801 查看
<?php
/**
* 状态模式
*
* 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它所属的类
*
*/
interface State
{
publicfunction handle($state);
publicfunction display();
}

class Context
{
private$_state=null;

publicfunction __construct($state)
{
$this->setState($state);
}

publicfunction setState($state)
{
$this->_state =$state;
}

publicfunction request()
{
$this->_state->display();
$this->_state->handle($this);
}
}

class StateA implements State
{
publicfunction handle($context)
{
$context->setState(new StateB());
}

publicfunction display()
{
echo"state A<br/>";
}
}

class StateB implements State
{
publicfunction handle($context)
{
$context->setState(new StateC());
}

publicfunction display()
{
echo"state B<br/>";
}
}

class StateC implements State
{
publicfunction handle($context)
{
$context->setState(new StateA());
}

publicfunction display()
{
echo"state C<br/>";
}
}

// 实例化一下
$objContext=new Context(new StateB());
$objContext->request();
$objContext->request();
$objContext->request();
$objContext->request();
$objContext->request();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: