例如,我有一个DAO用于访问令牌数据库。是否可以使用它来创建并立即持久化新实体,就像下面的例子一样?(PHP示例)
class TokenDao {
...
public function createToken($code) {
$token = new Token($code);
$this->entityManager->persist($token);
$this->entityManager->flush();
return $token;
}
}
它结合了对象工厂和DAO。我认为将对象工厂和dao分开(可能还会包装到facade中)是不必要的开销,但我想听听其他人的意见,如果这不是一个糟糕的做法。
关于DAO模式的文章,我没有发现任何正面或负面的线索。
感谢您的意见/回答
在我看来,DAO应该只用于封装数据库,而不是执行一些逻辑或创建。
在您的示例中,另一个问题是,如果您更改Token构造函数,则必须同时更改TokenDao。
我的意见是,在您的DAO的单独层中创建令牌。