如果我将数据库查询放入表示真实世界对象的类中,是否违反了实体无法访问数据源的设计规则?在数据类中进行数据库查询是一个好主意吗?
下面是一个例子
class User
{
public function register
{
}
private function save_user_data()
{
// database queries here, either in AR or ORM
}
}
如果我将数据库查询放入表示真实世界对象的类中,是否违反了实体无法访问数据源的设计规则?在数据类中进行数据库查询是一个好主意吗?
下面是一个例子
class User
{
public function register
{
}
private function save_user_data()
{
// database queries here, either in AR or ORM
}
}
引述史蒂夫·麦康奈尔(代码大全[1,2]):
Sofware的主要技术当务之急是管理复杂性。
如果您正在编写大型应用程序,从长远来看,它会降低抽象数据访问的复杂性。如果你正在编写一个中小型的应用程序,只要你清楚并且一致,就可以在对象本身中进行数据访问。
以合理的方式降低复杂度。
+1有时候,我真的很想+5 :) – 2009-08-18 07:40:35
我个人认为储蓄类的责任,应与本身,但是实际的代码执行保存到数据库应该进入一类在数据访问层。
很明显是的。但真正的问题是这个规则是否重要?取决于,我想。
就我个人而言,我只是使用ORM为我生成所有这些东西。 LLBLGEN。
如果您有一个设计规则声明“实体不能访问数据源”,并且您创建了一个可以访问其数据源的实体,那么我会说规则已被违反。你不是故意问这样的事情是不是一个好主意? – inerte 2009-08-18 06:08:31
我可能会这样说......嗯......但是如果我使用ORM,这意味着ORM库为我做了查询。将该类中的ORM方法与在那里查询相同? – yretuta 2009-08-18 06:11:15