ホームページ >php教程 >php手册 >PHP 設計パターン State (状態パターン)

PHP 設計パターン State (状態パターン)

WBOY
WBOYオリジナル
2016-06-21 08:54:141658ブラウズ

复制代码代码如下:


/**
* 状態パターン
*
* 内部状態が変化したときにオブジェクトの動作を変更できるようにし、オブジェクトが属するクラスを変更しているように見せます
*
*/
インターフェース状態
{
パブリック関数ハンドル($state);
パブリック関数 display();
}
クラスコンテキスト
{
private $_state = null;
パブリック関数 __construct($state)
{
$this->setState($state);
}
パブリック関数 setState($state)
{
$this->_state = $state;
}
パブリック関数 request()
{
$this->_state->display();
$this->_state->handle($this);
}
}
クラス StateA は State を実装します
{
public function handle($context)
{
$context->setState(new StateB());
}
public function display()
{
echo "state A
";
}
}
クラス StateB は State を実装します
{
public function handle($context)
{
$context->setState(new StateC());
}
public function display()
{
echo "state B
";
}
}
クラス StateC は State を実装します
{
public function handle($context)
{
$context->setState(new StateA());
}
public function display()
{
echo "state C
";
}
}
// 实例化一下
$objContext = new Context(new StateB());
$objContext->request();
$objContext->request();
$objContext->request();
$objContext->request();
$objContext->request();



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。