2009-01-21 37 views
2

给定一个域对象(比如说Person),该对象是否应该包含它的Data Mapper(Person_Mapper)?域对象是否应该包含映射器?

例如,我可以在这两种不同方式的灭活作用的工作:

$mapper = new Person_Mapper(); 

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

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

或者这样:

$mapper = new Person_Mapper(); 

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

$person->inactivate(); 


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

回答

1

我为DAO模式和数据映射器模式之间的关系有点不清楚,但DAO Person对象将返回传输对象设置为true不活动领域,用手回到Person DAO处理。人物不应该从持久性中知道。