【问题标题】:Are calculated quantities a part of the Model, View or Controller?计算的数量是模型、视图或控制器的一部分吗?
【发布时间】:2015-06-06 15:03:21
【问题描述】:

假设我有一个模型-视图-控制器类型的应用程序。该模型是具有发动机和轮胎等的汽车。汽车的速度是派生/计算的非持久量,取决于发动机和轮胎。

速度应该成为模型的一部分吗?还是应该成为视图的一部分?

到目前为止,我已经让速度成为视图的一部分(因为它没有被持久化并且模型没有将它用于任何事情)。但是我发现我越来越需要有很多视图来显示速度(例如概览和详细视图)。这导致我最终要么在模型之外到处传递 SpeedCalculator 类,要么在我的视图中创建 getSpeedCalculator 类型访问器,这让我相信计算出的数量应该是模型的一部分。

但我想对此提出一些意见。

【问题讨论】:

  • 简短的回答是模型。它不是持久性数据,而是可以在不同视图中表示为汽车信息的数据的一部分。

标签: java model-view-controller


【解决方案1】:

根据您的感觉,将该属性建立为模型中的合成字段。所以没有额外的物理场,而是把推导函数作为getter。在我看来,这没关系,因为这个 getter 只是一个非常愚蠢的字段访问器,并且值的定义在整个应用程序中似乎是相同的,尤其是独立于它出现的视图。

如果计算将依赖于视图,我建议将派生函数作为控制器级别的实用程序,因此这确实成为基于您的计划/要求的架构问题。

【讨论】:

    猜你喜欢
    • 2011-11-07
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    相关资源
    最近更新 更多