2009-01-21 16 views
2

Étant donné un objet de domaine (disons, par exemple, Personne), cet objet doit-il contenir son Data Mapper (Person_Mapper)?Un objet de domaine doit-il contenir son mappeur?

Par exemple, je pourrais avoir un travail d'action inactivent dans ces deux façons différentes:

$mapper = new Person_Mapper(); 

$person = $mapper->load(1); 

$person->active = false; 
$mapper->save($person); 

Ou comme ceci:

$mapper = new Person_Mapper(); 

$person = $mapper->load(1); 

$person->inactivate(); 


class Person 
{ 
    public function inactivate() 
    { 
      $this->active = false; 
      $this->_mapper->save($this); 
    } 
} 

Répondre

1

Je suis un peu clair quant à la relation entre le motif de DAO et le modèle Data Mapper, mais avec DAO l'objet Personne retourneraient un objet de transfert avec le champ inactif défini sur true, et remettre à la personne DAO pour prendre soin de. L'objet personne ne devrait pas du tout connaître la persistance.