<?php
require_once 'UnauthorizedState.php';
class User
{
private $_id;
private $_state;
private $_count = 0;
public function __construct($id)
{
$this->_id = $id;
$this->_state = UnauthorizedState::getInstance();
$this->resetCount();
}
public function switchState()
{
echo '状態遷移:' . get_class($this->state) . '→';
$this->_state = $this->_state->nextState();
echo get_class($this->_state) . '<br />';
$this->resetCount();
}
public function isAuthenticated()
{
return $this->_state->isAuthenticated();
}
public function getMenu()
{
return $this->_state->getMenu();
}
public function getUserId()
{
return $this->_id;
}
public function getCount()
{
return $this->_count;
}
public function incrementCount()
{
$this->_count++;
}
public function resetCount()
{
$this->_count = 0;
}
}