2009-01-21 51 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處理。人物不應該從持久性中知道。