Oop 在数据类中进行数据库查询是一个好主意吗?
如果我将数据库查询放在一个表示真实对象的类中,这是否违反了实体不能访问数据源的设计规则 这里有一个例子Oop 在数据类中进行数据库查询是一个好主意吗?,oop,Oop,如果我将数据库查询放在一个表示真实对象的类中,这是否违反了实体不能访问数据源的设计规则 这里有一个例子 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
}
}
就我个人而言,我认为保存类的责任应该由它自己承担,但是执行保存到数据库的实际代码应该进入数据访问层的类中。很明显,是的。但真正的问题是这条规则重要吗?我想这要看情况了 就个人而言,我只是使用ORM为我生成所有这些东西。LLBLGen.引用Steve McConnell(代码完成[1,2]): 软件的主要技术要求是管理复杂性 如果您正在编写一个大型应用程序,从长远来看,它将降低抽象数据访问的复杂性。如果您正在编写一个中小型应用程序,那么在对象本身中进行数据访问可能更有意义,只要您清楚且一致
以合理的方式降低复杂性。如果您有一条规定“实体不得访问数据源”的设计规则,并且您创建了一个可以访问其数据源的实体,那么我会说该规则已被违反。你不是想问这样的事情是不是一个好主意吗?我可能是这个意思…嗯…但是如果我使用ORM,那意味着ORM库为我做查询。将ORM方法放在那个类中与在那个类中放置查询相同吗?