在DAO中创建对象是否可以

时间:2015-10-07 13:41:34

标签: php design-patterns factory dao

例如,我有一个DAO用于访问令牌数据库。 是否可以使用它来创建并立即保留新实体,如下例所示? (PHP中的示例)

class TokenDao {
    ...
    public function createToken($code) {
        $token = new Token($code);
        $this->entityManager->persist($token);
        $this->entityManager->flush();
        return $token;
    }
}

它将对象工厂与DAO结合在一起。我认为制作单独的对象工厂和dao(可能包装成外观)是不必要的开销,但是如果这不是一种不好的做法,我想听听别人的意见。

如果没有问题,我还没有找到关于DAO模式的文章的正面或负面线索。

感谢您的意见/答案。

1 个答案:

答案 0 :(得分:0)

在我看来,DAO应仅用于封装数据库而不执行某些逻辑或创建。

在您的示例中,另一个问题是如果您更改Token构造函数,则还必须更改TokenDao。

我的意见是,在与DAO分开的图层中创建令牌。