Oop 在这个简单的MVC场景中,我应该把这个逻辑放在哪里?

Oop 在这个简单的MVC场景中,我应该把这个逻辑放在哪里?,oop,model-view-controller,mvvm,viewmodel,Oop,Model View Controller,Mvvm,Viewmodel,我将描述我必须解决的问题,然后问我的问题 问题 我的问题很简单,至少看起来是这样。我需要访问数据库,并获取体育事务实体的集合。其中包括“丹佛掘金用PlayerX换PlayerY”。一旦有了事务实体集合,我需要以特定格式将内容输出到.txt文件,大致如下所示: Title Sport1 League1 Transaction1 Transaction2 ... League2 Transaction1 Transact

我将描述我必须解决的问题,然后问我的问题

问题 我的问题很简单,至少看起来是这样。我需要访问数据库,并获取体育事务实体的集合。其中包括“丹佛掘金用PlayerX换PlayerY”。一旦有了事务实体集合,我需要以特定格式将内容输出到.txt文件,大致如下所示:

Title
  Sport1
    League1
      Transaction1
      Transaction2
      ...
    League2
      Transaction1
      Transaction2
  Sport2
  etc.
体育和联赛的顺序很重要。首先是棒球,然后是足球,等等。如果一项运动没有交易,则该运动的档案中没有任何内容。这就是我们的计划

我使用的是ORM,事务实体非常大,有很多额外的字段,我不需要显示。因此,我希望映射到仅包含上述信息的viewmodel

问题 首先,这里没有“域”,因此不需要分解域事务对象,对吗?我需要做的就是从数据库实体映射到ViewModel

其次,我在存储库方法调用中编码了多少“视图”逻辑?我是否要取回事务实体的集合,然后在控制器中对它们进行排序?或者存储库应该为我进行排序吗?我觉得如果我让repository类根据视图所需的顺序对事务进行排序,那么这就分散了视图逻辑,这很混乱。另一方面,让数据库进行排序有助于提高性能

第三,控制器在构建视图模型方面做了多少工作?例如,正如我上面所说,任何没有交易的运动都不应该被显示。控制器应该检查并明确地从视图模型中排除这些事务,还是视图应该进行检查并做出决定

感谢您花时间回复

首先,这里没有“域”,因此不需要分解的域 域事务对象,对吗?我所需要做的就是从地图上 数据库实体到视图模型

听起来不错

第二,我在存储库方法中编码了多少“视图”逻辑 呼叫我是否要取回交易实体的集合,然后 在我的控制器中排序?或者存储库应该进行这种排序 为了我?我觉得如果让repository类对事务进行排序 根据顺序,我需要他们的看法,然后这是蔓延 查看周围的逻辑,这很混乱。另一方面,还有一个问题 让数据库进行排序可以提高性能

我认为在数据库中排序是可以的,因为这样对性能更好。多少“视野”?看风景而定。请看下一个答案

第三,控制器在构造方面做了多少工作 视图模型?比如,就像我上面说的,任何没有 不应显示任何事务。控制员是否应该 选中并从视图模型中明确排除这些事务, 还是视图应该进行检查并做出决定

您正在转储到文本,因此这里的“视图”只是要添加到缩进中的选项卡或空格数。但是如果它是一个GUI树组件呢?然后,您必须将数据推送到节点中,并提供关于哪个节点是哪个节点的子节点的信息,然后才能为控制器工作

我认为MVC的主要思想是使切换每个组件更容易。我的意思是,如果将典型的树可视化从纯文本替换为GUI树组件(例如)很容易,那么MVC设计得很好。如果不是这样的话,可能这些层仍然过于耦合,您无法正确地重用其他层

首先,这里没有“域”,因此不需要分解的域 域事务对象,对吗?我所需要做的就是从地图上 数据库实体到视图模型

听起来不错

第二,我在存储库方法中编码了多少“视图”逻辑 呼叫我是否要取回交易实体的集合,然后 在我的控制器中排序?或者存储库应该进行这种排序 为了我?我觉得如果让repository类对事务进行排序 根据顺序,我需要他们的看法,然后这是蔓延 查看周围的逻辑,这很混乱。另一方面,还有一个问题 让数据库进行排序可以提高性能

我认为在数据库中排序是可以的,因为这样对性能更好。多少“视野”?看风景而定。请看下一个答案

第三,控制器在构造方面做了多少工作 视图模型?比如,就像我上面说的,任何没有 不应显示任何事务。控制员是否应该 选中并从视图模型中明确排除这些事务, 还是视图应该进行检查并做出决定

您正在转储到文本,因此这里的“视图”只是要添加到缩进中的选项卡或空格数。但是如果它是一个GUI树组件呢?然后,您必须将数据推送到节点中,并提供关于哪个节点是哪个节点的子节点的信息,然后才能为控制器工作

我认为MVC的主要思想是使切换每个组件更容易。我的意思是,如果将典型的树可视化从纯文本替换为GUI树组件(例如)很容易,那么MVC设计得很好。如果不是这样的话,可能这些层仍然过于耦合,您无法正确地重用其他层

首先,这里没有“域”,因此不需要分解的域 域事务对象,对吗?我所需要做的就是从地图上 数据库实体到视图模型

听起来不错

第二,我在存储库方法中编码了多少“视图”逻辑 呼叫我是否要取回交易实体的集合,然后 在我的控制器中排序?或者存储库应该进行这种排序 为了我?我觉得我
PlayerTransactionsViewModel viewModel = playerTransactionService.GetAllTransactions();
return View(viewModel);