【发布时间】:2014-07-23 23:21:30
【问题描述】:
我将描述我必须解决的问题,然后提出我的问题。
问题
我的问题很简单,至少看起来是这样。我需要访问数据库,并取回一组运动交易实体。其中包括“丹佛掘金队将 PlayerX 换成 PlayerY”之类的内容。一旦我有了事务实体的集合,我需要将内容以特定格式输出到 .txt 文件,大致如下:
Title
Sport1
League1
Transaction1
Transaction2
...
League2
Transaction1
Transaction2
Sport2
etc.
运动和联赛的顺序很重要。首先是棒球,然后是足球等。如果一项运动没有交易,则该运动的文件中不包含任何内容。程序差不多就是这样。
我正在使用 ORM,Transaction 实体非常大,有很多我不需要显示的额外字段。出于这个原因,我想映射到仅包含上述信息的视图模型。
问题
首先,这里没有“域”,因此不需要分解的域事务对象,对吧?我需要做的就是从数据库实体映射到 ViewModel?
其次,我在存储库方法调用中编码了多少“视图”逻辑?我是否会取回事务实体的集合,然后在我的控制器中对它们进行排序?或者存储库应该为我做这个排序吗?我觉得如果我让存储库类根据视图需要它们的顺序对我的事务进行排序,那么这会传播视图逻辑,这很令人困惑。另一方面,让数据库进行排序会带来性能优势。
第三,控制器在构建视图模型方面做了多少工作?例如,就像我上面所说的,任何没有交易的运动都不应该显示。控制器应该检查这些事务并从视图模型中明确排除,还是应该由视图进行检查和决定?
感谢您抽出宝贵时间回复。
【问题讨论】:
-
基本上,您定义应用程序的业务/视图逻辑含义。如果订单或可见性是您的应用程序的主要功能,我不会认为它是视图逻辑。在我看来,即使是 DB 排序也可以。
标签: oop model-view-controller mvvm viewmodel