具有多个 类 的模型中的 MVC 模式

MVC pattern in model with multiple classes

将 MVC 模式应用于具有多个 classes 的设计时,我是否需要为每个相关 classes 创建模型、视图和控制器?

例如,对于具有 UserAccount class、MultimediaContent class 等域的设计,我是否需要设计 UserAccountModel, UserAccountView, UserAccountController, 和 MultimediaContentModel, MultimediaContentView, MultimediaContentController, 等等?

我在网上找过例子,但他们都使用一个 class。

在他original MVC as decribed by its inventor一个:

  • 一个应用程序应该有一个控制器
  • 一个控制器可以为多个视图提供输入和命令,
  • 一个应用程序可以管理多个模型。

这是一个非常高层次的描述,因为这些主要“组件”中的每一个都可以由多个 类 组成。因此,最好的映射完全由您决定。

其他原则,例如关注点分离,建议对不同的模型对象有不同的看法。所以 UserAccountUserAccountView 通常是一种合理的方法。但是您仍然可以拥有同时引用多个不同模型对象的组合视图。

您会发现更多关于控制器的 MVC 风格。单一控制器垄断用户输入并控制所有视图和指挥域,不再是现实,因为许多 windowing 系统将控制器附加到 window。所以你可能有一大群控制器,每个视图都有一个 AppController 和一个额外的控制器,例如UserAccountViewController,而不是每个域对象一个控制器。

当然,在一个非常简单的应用程序中,有几个相对独立的领域对象,每个领域对象都有一个单独的视图,你可以找到你描述的对象。