Exemplo n.º 1
0
    protected $_nation;
    public function getUid()
    {
        return $this->_uid;
    }
    public function setUid($uid)
    {
        $this->_uid = $uid;
        return $this;
    }
    public function getNationality()
    {
        return $this->_nation;
    }
    public function setNationality($nation)
    {
        $this->_nation = $nation;
        return $this;
    }
    public function __toString()
    {
        return "User: #{$this->_uid}. " . $this->_nation->getNationalityDeclaration($this->_uid);
    }
}
$user = new User();
$user->setUid(714673)->setNationality(Nationality::getInstance('Italia'));
echo $user, "\n";
// changing a Flyweight means referencing a new instance
// (which may actually already exist in the FlyweightFactory)
$user->setNationality(Nationality::getInstance('Australia'));
echo $user, "\n";