给定一个域对象(比方说,例如,人),应该对象包含其数据映射(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);
    }
}
有帮助吗?

解决方案

在Person类应只知道人的东西,因此不应包含任何与数据映射。

请参阅 http://en.wikipedia.org/wiki/Single_responsibility_principle

其他提示

我为DAO模式和所述数据映射图案之间的关系的有点不清楚,但与DAO Person对象将返回传输对象与非活动字段设置为真,并且该手背部到Person DAO照顾。人员对象不应该执着知不知道。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top