【问题标题】:Does a Model in MVC Need To Be a Class Or is That Just a Common Pattern?MVC 中的模型需要是一个类还是只是一个常见的模式?
【发布时间】:2019-04-22 03:47:26
【问题描述】:

我意识到我混淆/混淆了两个不同的主题,但在我遇到的最流行的 MVC 框架中,模型似乎是一个类/面向对象(并且使用了某种 ORM 或 ODM,我可能不想用)。

我的问题是:如果我将文件拆分为模型、视图和控制器,但我的模型只是一个单独的文件,它处理业务逻辑、验证数据并处理与数据库的通信。 .但我以我自己的方式做它不是面向对象的......也许只是使用超级简单的if语句进行验证......这仍然被认为是一个模型吗?那还会被认为是 MVC 吗?

模型是否需要是类/面向对象的,还是只是一种超级常见的模式/偏好?

谢谢!!

【问题讨论】:

    标签: model-view-controller model


    【解决方案1】:

    一般来说,“型号”是指您的Business Object Model (BOM)。如果您订阅Domain Driven Design (DDD),那么您在模型视图控制器 (MVC) 架构中的模型将作为类或接口代表您的 BOM。这些 BOM 也可能是您在对象关系映射架构中的类。由于接口更好地描述了某事可以做什么,而一个类描述了某事是什么,因此您倾向于将模型表示为类而不是接口。就这些模型类中允许的“逻辑”而言,这实际上取决于您和您的团队。例如,虽然通常将数据验证放在模型中,但您可能希望将这些规则抽象为模型使用的单独数据验证类。关于业务逻辑的去向通常没有非黑即白的规则,但通常认为每个类的最佳实践是基于 Single Responsibility Principle 作为 SOLID 模型的一部分具有单一职责。根据我的经验,当我将不是业务对象模型的东西称为“模型”类时,比如“RepositoryModel”,它可能会混淆数据模型的代码表示在哪里。相反,我建议将“模型”一词保留给最终用户熟悉的事物,并避免将“模型”一词用于他们不熟悉的事物。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-27
      • 2010-12-17
      • 1970-01-01
      • 2017-03-15
      • 2015-07-05
      相关资源
      最近更新 更多