【问题标题】:How should I call non-database models?我应该如何调用非数据库模型?
【发布时间】:2017-09-02 06:11:27
【问题描述】:

假设我有一个用于计算复杂矩阵运算的 Web 应用程序。该应用程序还允许用户交互。所以我的应用程序包括:

映射到数据库表的 ORM 模型:

  1. 用户
  2. 评论
  3. 历史(请求的操作)

此外,还有一些其他类用于:

  1. 计算基本运算,例如乘法、求和等
  2. 矩阵类。
  3. 矩阵逆变器。
  4. 使用矩阵计算图形处理操作的类。

因此,在大多数网络应用程序中,人们仅将“模型”视为映射到数据库中某些内容的模型。但最初,模型一词也指任何属于应用程序逻辑的内容。

据我所知,我提到的第一种模型是“域”模型。 (我不确定这一点,所以请随时纠正)。但是第二个,它叫什么名字?

【问题讨论】:

    标签: oop model-view-controller orm


    【解决方案1】:

    对我来说,第一个是 数据模型,它具有 实体 UserCommentHistory。是的,都是单数!因为表名应该代表它存储的单个对象,所以当使用 ORM 映射时,整个表集可以映射为Collection<User> Users

    第二个是领域层,它不了解数据持久性,并拥有您的应用逻辑所需的一切。所以我将Matrix 类称为一个域对象,而只有一个MatrixService 对传递给它的Matrix 实例执行乘法、求和、求逆等基本操作。

    由于 MVC 在标签列表中,我想补充一点,MVC 中的 M(模型)是概念术语,您不需要将任何东西真正命名为模型/模型。您可以/应该将此 M 部分分离为单独的库,并将它们称为 {app}.domain、{app}.data、{app}.services 等等。它们一起将代表 MVC 中的 M,并做所有 Controller 不应该做的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-17
      相关资源
      最近更新 更多