Model view controller MVC:控制器和模型之间的关系

Model view controller MVC:控制器和模型之间的关系,model-view-controller,model,view,controller,Model View Controller,Model,View,Controller,我对MVC中的控制器模型关系有点困惑 控制器应该能够访问系统中的任何模型,还是应该与特定模型具有1:1的关系?这两种选择似乎都存在问题: 如果关系为1:1,那么显然,如果其他地方需要更新,则无法更新,例如,从窗口三元组外部更新窗口标题。那么,模型是否应该访问其他模型(以及如何找到它们?) 如果不是1:1,并且控制器可以访问任何模型,那么通常如何访问这些模型(服务定位器?),如果需要一个以上的特定模型实例,该怎么办 我有点糊涂了!感谢您的帮助。对于基本的CRUD功能,我认为1:1的关系是可行的,但

我对MVC中的控制器模型关系有点困惑

控制器应该能够访问系统中的任何模型,还是应该与特定模型具有1:1的关系?这两种选择似乎都存在问题:

如果关系为1:1,那么显然,如果其他地方需要更新,则无法更新,例如,从窗口三元组外部更新窗口标题。那么,模型是否应该访问其他模型(以及如何找到它们?)

如果不是1:1,并且控制器可以访问任何模型,那么通常如何访问这些模型(服务定位器?),如果需要一个以上的特定模型实例,该怎么办


我有点糊涂了!感谢您的帮助。

对于基本的CRUD功能,我认为1:1的关系是可行的,但绝不是每个控制器都应该有相应的模型。尽管如此,我显然不认为在一个控制器中访问多个模型是一个问题


在我的MVC应用程序中,唯一具有1:1关系的是模型和表。

通常我不会直接从控制器访问模型。我通常在模型和控制器之间添加另一层。 例如: 控制器层->服务层->模型层

对于每个模型类,我构建一个服务类来访问它,控制器可以访问应用程序中的每个服务。 我认为这是一个很好的做事方式。
如果您需要一些示例,请询问。:)

MVC范式基于一条主要规则,即关注点分离。通过与模型的某种关系使控制器1:1依赖不是分离这些关注点,而是使它们更加统一。一个名为“用户”的控制器应该只与一个名为“用户”的模型对话,但是为什么要去建立一个明确的关系呢


模型几乎应该始终存在于独占的静态上下文中,因此可以在控制器和其他模型中轻松访问它们。

当然有许多编程方法,但如果使用一对多,则可以使用存储库模式。有关该模式的更多信息,请查看NerdDinner教程。