<?php
/**
* 抽象状态角色
*/
interface State {
/**
* 方法示例
*/
public function handle(Context $context);
}
/**
* 具体状态角色A
* 单例类
*/
class ConcreteStateA implements State {
/* 唯一的实例 */
private static $_instance = null;
private function __construct() {
}
/**
* 静态工厂方法,返还此类的唯一实例
*/
public static function getInstance() {
if (is_null(self::$_instance)) {
self::$_instance = new ConcreteStateA();
}
return self::$_instance;
}
public function handle(Context $context) {
echo 'Concrete Sate A handle method<br />';
$context->setState(ConcreteStateB::getInstance());
}
}
/**
* 具体状态角色B
* 单例类
*/
class ConcreteStateB implements State {
/* 唯一的实例 */
private static $_instance = null;
private function __construct() {
}
/**
* 静态工厂方法,返还此类的唯一实例
*/
public static function getInstance() {
if (is_null(self::$_instance)) {
self::$_instance = new ConcreteStateB();
}
return self::$_instance;
}
public function handle(Context $context) {
echo 'Concrete Sate B handle method<br />';
$context->setState(ConcreteStateA::getInstance());
}
}
/**
* 环境角色
*/
class Context {
private $_state;
/**
* 默认为StateA
*/
public function __construct() {
$this->_state = ConcreteStateA::getInstance();
}
public function setState(State $state) {
$this->_state = $state;
}
public function request() {
$this->_state->handle($this);
}
}
/**
* 客户端
*/
class Client {
/**
* Main program.
*/
public static function main() {
$context = new Context();
$context->request();
$context->request();
$context->request();
$context->request();
}
}
Client::main();
?>
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有