数据库的对象:数据库的面向对象设计(what is object oriented design)

数据库在哪里适合面向对象的设计?例如,我有一个简单的文章数据库,我的用例图有搜索文章,查看文章和创建文章的场景。

我应该有一个与类中的数据库连接的文章类,或者只是一个全局数据库类,以便其他类说用户类可以访问相同的连接?

此外,我应该使用表作为对象,如文章是它自己的数据对象,然后有一个类,如 ArticleApi 的 CRUD 操作?

另一个也如果任何人有任何开始到完成的面向对象的分析和设计教程,这将是巨大的。

对于这样一个新手问题,我很抱歉,我来自过程编程实践,并试图进入软件开发的面向对象部分。

4

你没有指定任何特定的平台,所以它不会是一个非常准确的答案。

数据库在哪里适合面向对象的设计?

这就是为什么我们需要ORM software,比如Hibernate for JavaDoctrine for PHP

我应该有一个与类中的数据库连接的文章类,或者只是一个全局数据库类,以便其他类说用户类可以访问相同的连接?

此外,我应该使用表作为对象,如文章是它自己的数据对象,然后有一个类,如 ArticleApi 的 CRUD 操作?

ORM 架构基本上有两种常见的方法:

Data Mapper,其中您的域对象只是普通对象,与 ORM / 数据库没有任何依赖关系。您应该以 OO 方式建模模型,然后将其映射到数据库中。您有一组单独的对象 (EntityManagers) 来处理实际的持久性。

Active Record,其中您的域对象与 ORM 紧密耦合,并且它们自己提供了一组方法来处理与数据库相关的操作。

在我个人看来,数据映射器方法优于活动记录,因为它遵循SOLID原则。

您通常应该记住,您的域模型(面向对象)和数据库模型(rdbms)是两个不同的东西,必须使用不同的准则进行建模。

1

对于最简单的应用程序,您可以使用Transaction Script方法(这是非常程序化的)。

然后你可以发展到Table Module-为数据库中的每个表使用类的方法,该类负责管理表中的所有数据。

对于更复杂的应用程序,您将拥有Domain Model(通常甚至在您拥有数据库之前)。并且您将需要Data Mapper将域模型类映射到数据库中的表(您可以将单个类映射到多个表,反之亦然)。借助现代Object Relational Mappers的强大功能,域模型的使用变得更加容易,因为这种映射的大部分都是自动完成的。一些工具,例如

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(136)
Colli star:Bloxorz a-Star搜索
上一篇
C2dm函数:C2DM不稳定或某种限制 (unstableness)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(60条)