我理解MVC模式是如何工作的,但我一直有这个问题。如果你有一个大的模型,有许多委托给不同类的函数,你是否必须定义一个包含所有操作和查询模型的方法的大的整体接口?
或者,是否可以将该模型划分为多个相互通信的模型,然后您可以使用它们各自的控制器来操作它们?
谢谢
发布于 2011-10-10 22:48:57
在这里,“视图”概念可能会有所帮助--在"Professional ASP.NET MVC3“一书中,Phil Haack也将其称为”特定于视图的模型“。
许多自动工具或“脚手架”生成器希望创建单个页面/界面,但没有什么可以阻止您为大型模型创建多阶段流程。
一种选择是为流程的每个阶段创建视图模型(即,BigProcessPartAViewModel、BigProcessPartBViewModel等),然后生成一个控制器,该控制器用不同的视图处理每一个。显然,您需要跨多个阶段管理状态,可能需要使用数据库或会话。
另外,你的模型就是你的模型...它不是数据访问。因此,您可能需要有一个额外的模型来处理进程内状态,以及一个允许多阶段事务的数据访问设计。
发布于 2011-10-10 22:39:51
并不是说你的模型必须是一个单独的类或实体。
例如,在Spring MVC中,模型基本上是您在控制器中构造的一个Map,具有键和值。
发布于 2011-10-10 22:57:44
接口隔离是SOLID的一部分,它代表了面向对象编程和设计的5个基本原则。它说,如果你的接口变得太‘胖’,它需要被分成更小和更具体的接口。有关Interface segregation wiki page的更多详细信息
https://stackoverflow.com/questions/7714397
复制相似问题