<?php
/**
* 抽象状态类
* @author wzy
*
*/
interface VoteState
{
/**
* 需要实现的公共方法
*/
public function vote ();
}
/**
* 具体状态——正常投票
*
* @author wzy
*
*/
class NormalVoteState implements VoteState
{
public function vote ()
{
echo "这是一个正常投票!";
}
}
/**
* 具体状态——恶意投票
*
* @author wzy
*
*/
class RepeatVoteState implements VoteState
{
public function vote ()
{
echo "这是一个恶意投票!";
}
}
/**
* 具体状态——黑名单投票
*
* @author wzy
*
*/
class BlockVoteState implements VoteState
{
public function vote ()
{
echo "这是一个黑名单投票!";
}
}
/**
* Context角色
*/
class VoteManager
{
/**
* 投票数量
*
* @var int
*/
private $vote_count;
/**
* 状态类实例
*
* @var object
*/
private $voteInstance;
/**
* 构造函数,初始化成员属性
*
* @param int $count
*/
public function __construct ($count = 1)
{
$this->vote_count = $count;
}
/**
* 客户端调用的接口函数
*/
public function setState ($count)
{
if (! is_null($count)) {
$this->vote_count = $count;
}
if ($this->vote_count < 5) {
$this->voteInstance = new NormalVoteState();
} else
if ($this->vote_count < 8) {
$this->voteInstance = new RepeatVoteState();
} else {
$this->voteInstance = new BlockVoteState();
}
$this->voteInstance->vote();
}
}
/**
* 模拟客户端操作
*/
$object = new VoteManager();
$object->setState(1);
echo "<br>";
$object->setState(6);
echo "<br>";
$object->setState(10);
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有