0

我正在构建一个新应用程序,但无法决定解决这个问题的方式。

面向数据库数据的类是否应该使用以下方法从数据库构建自己:

class Foo 
{
    public buildYourselfFromDatabaseForID(...)
    //and overloading the constructor etc.
    public commitYourselfToTheDatabase();
}

或者我应该构建一个数据库管理类/工厂来处理所有 SQL 并为我构建对象,例如:

Foo var = dbManager->createMeAFooFromID(id);
// Make some changes to var

dbManger->commitChangesToFoo(var);

我以前曾参与过两种方式的项目,但无法真正决定在这个新项目中采用哪种方式,并想知道今天的普遍共识是什么?

我的意思是它们是两种方式的优点和缺点,但是在这方面更普遍采用的方法是什么?您可以指出他们的任何既定模式吗?

4

1 回答 1

1

让一个实体直接联系数据库违反了关注点分离——这意味着除了它自己的工作之外,该类还在做一些与它无关的数据库工作。

有一个工厂/建造者。

如今,从数据库中隐藏实体的一种常用方法是通过ORM - 这样的库在数据库和您的对象模型之间进行调解,并代表您处理所有数据库交互。ORM的示例包括Entity FrameworknHibernateDapper等。

于 2013-04-05T10:45:29.733 回答