在MVC模式中,我看到了组成数据模型的类和驱动系统的这些类的实例之间的区别。我的团队恭敬地不同意我的意见,我想澄清一下。模型对象是否应通过MVC模式中的视图创建?
我有一个Employee
类,它是模型中唯一的类。控制器有一个类的实例,并且该实例驱动视图。
我会打电话给控制器“模型”所拥有的Employee
类的一个实例,并且我会调用Employee
类的其他任何实例,但不驱动系统“不是模型”。
为什么我这样做是因为我的团队认为视图不应该创建模型。我同意,但我认为该视图应该能够创建Employee
类的实例传递给控制器。
例如,如果我在控制器中有一个方法setCoworker(employee : Employee)
,我认为视图创建一个Employee
的新实例并将其传递给控制器是完全可以的。
MVC模式最佳实践指令是什么?我不应该从视图创建实例吗?
我很欣赏你的看法。但是如果BuildANewModel()需要很多直接来自人类输入(即视图)的参数呢?我们可以将所有的参数传递给函数,但是这会变得很难管理,而且如果我们创建一个包含所有参数的单独对象,我们基本上会重复已经存在于模型中的类。您怎么看? – Samuel
这通常在控制器的界面中定义,无论是作为参数还是作为某种数据对象。就像我说的那样,没有人会为了使用该数据对象的Model而打破僵局,但它不符合模式,这就是您的问题所在。 – Paul
我有点像控制器暴露的数据对象的想法。像'EmployeeCreationArgs'。如果视图没有或不应该关注的“员工”类的某些部分,这可能很有价值。感谢您的输入:) – Samuel