14-05-2008, 10:19 PM
Ah oui, un des avantages du wrapper c'est de pouvoir changer l'objet wrappé à la volée, en ajoutant par exemple une fonction "mutate" :
Code PHP :
<?php
function mutate($object)
{
$this->wrapped = $object;
}
Pour le coup la mutation devient possible (en apparence) :
Code PHP :
<?php
$member = new Wrapper(new SimpleMember($info));
// $member->getClass() == "SimpleMember"
$member->mutate(new Administrator($info));
// $member->getClass() == "Administrator"