【问题标题】:Howto design models [closed]如何设计模型[关闭]
【发布时间】:2011-11-19 22:49:03
【问题描述】:

我正在尝试创建一个 Rails 应用程序,其中每个用户模型都可以有一个团队模型和一个体育场模型,并且可以在一个联赛中竞争。每支球队包含球员、一名教练、一名厨师等,每个体育场包含一个酒店、一个停车场等。

可以理解,所有这些球员、教练等都会影响球队的获胜机会,而停车场和酒店等的水平也会影响一段时间内的收入。

问题(源于我根本不是程序员)是我无法决定所有这些球员、教练、厨师、酒店、停车场等应该是单独的模型还是只是团队的属性和体育场模型。毕竟,如果用户将酒店从 1 级升级到 2 级,例如,体育场的价值可能会乘以 1.2。但我认为,为了更真实地计算比赛获胜条件(进球、失误、受伤等),使用单独的模型可能更合适。所以我知道这取决于功能或游戏机制。但由于我没有这些领域的经验,我无法规划基地。谁能给点建议?

谁能澄清这个问题?看了很多 MVC 文章,但对 MVC 还是有一些理解上的困难。

【问题讨论】:

    标签: ruby-on-rails model-view-controller


    【解决方案1】:

    首先,这只是一个关于模型的问题,而不是关于 MVC 的问题。以下是需要(或不需要)模型时的一些想法:

    • 是否有您想要保留的原始(字符串、数字、日期)值,不需要额外的模型。所以例如如果您只想存储体育场值(无论是什么),则无需为此创建 Stadium 模型。
    • 如果您的可能模型有多个要保留的值,则需要创建一个附加模型。保持例如看起来不自然stadium_value, stadium_name, stadium_size, ...
    • 如果您可能的模型不仅具有属性,而且具有行为,那么定义该行为(作为方法)的自然位置就是模型类。所以如果你想计算例如您的体育场的value 通过结合您模型的其他属性,模型Stadium 是自然的地方。

    这完全独立于 Rails,适用于所有基于对象或面向对象的语言。

    加法 没有您的全部知识,很难做出决定。最后,我们将讨论如何从数据库中检索和存储模型对象,以及如何在浏览器中显示它们。只要可能的模型对象是单个值(如培训师姓名),它就会更快、更容易实现并在浏览器中显示。它打破了你需要的不仅仅是培训师的名字。因此,请提前做好足够的设计,以明确哪些是真实的模型对象,并在您发现自己错过了一个时尽早做出反应。

    PS:如果你根本不是程序员,你将很难用 Rails 来实现它......

    【讨论】:

    • 如果我理解正确,您建议只有一个用户、一个团队和一个体育场模型就足够了,因为停车场、酒店等将存储一个值。但是团队模型不适合,因为例如训练模型将包含许多属性,例如名称、防御奖励、攻击奖励等。因此无需过多地混乱属性。
    • 在我的回答中添加了一些东西,希望它更清楚一点。
    • 非常感谢,正想问问你到底加了什么!
    猜你喜欢
    • 2011-12-07
    • 2013-02-21
    • 2010-09-23
    • 2010-09-11
    • 2016-02-12
    • 1970-01-01
    • 2013-09-05
    • 2012-09-27
    相关资源
    最近更新 更多