如果我将数据库查询放在代表真实世界对象的类中,这是否违反了实体必须无法访问数据源的设计规则?
这是一个例子
class User
{
public function register
{
}
private function save_user_data()
{
// database queries here, either in AR or ORM
}
}
答案 0 :(得分:2)
引用Steve McConnell(代码完成[1,2]):
Sofware的主要技术要求是管理复杂性。
如果您正在编写大型应用程序,从长远来看,它将降低抽象数据访问的复杂性。如果您正在编写一个中小型应用程序,那么在对象本身内进行数据访问可能更有意义,只要您清楚并与之保持一致即可。
以一种有意义的方式降低复杂性。
答案 1 :(得分:0)
我个人认为保存类的责任应该是自己的,但是执行保存到数据库的实际代码应该进入数据访问层的类。
答案 2 :(得分:0)
非常清楚是的。但真正的问题是这个规则是否重要?我想这取决于。
就个人而言,我只是使用ORM为我生成所有这些东西。 LLBLGEN。