2009-08-18 70 views
2

如果我将数据库查询放入表示真实世界对象的类中,是否违反了实体无法访问数据源的设计规则?在数据类中进行数据库查询是一个好主意吗?

下面是一个例子

class User 
{ 
    public function register 
    { 
    } 

    private function save_user_data() 
    { 
    // database queries here, either in AR or ORM 
    } 
} 
+1

如果您有一个设计规则声明“实体不能访问数据源”,并且您创建了一个可以访问其数据源的实体,那么我会说规则已被违反。你不是故意问这样的事情是不是一个好主意? – inerte 2009-08-18 06:08:31

+0

我可能会这样说......嗯......但是如果我使用ORM,这意味着ORM库为我做了查询。将该类中的ORM方法与在那里查询相同? – yretuta 2009-08-18 06:11:15

回答

2

引述史蒂夫·麦康奈尔(代码大全[1,2]):

Sofware的主要技术当务之急是管理复杂性。

如果您正在编写大型应用程序,从长远来看,它会降低抽象数据访问的复杂性。如果你正在编写一个中小型的应用程序,只要你清楚并且一致,就可以在对象本身中进行数据访问。

以合理的方式降低复杂度。

+0

+1有时候,我真的很想+5 :) – 2009-08-18 07:40:35

0

我个人认为储蓄类的责任,应与本身,但是实际的代码执行保存到数据库应该进入一类在数据访问层。

0

很明显是的。但真正的问题是这个规则是否重要?取决于,我想。

就我个人而言,我只是使用ORM为我生成所有这些东西。 LLBLGEN。

相关问题