如何在模型 - 视图 - 控制器中设计模型的接口?

时间:2011-10-10 14:38:13

标签: java model-view-controller interface model

我理解MVC模式是如何工作的,但我总是有这个问题。如果你有一个大型模型,其中许多函数被委托给各个类,你是否需要定义一个包含所有方法的大型单片接口来操作和查询模型?

或者,该模型是否可以划分为多个模型,相互通信,然后您可以使用各自的控制器来操作它们?

由于

3 个答案:

答案 0 :(得分:2)

“ViewModel”概念在这里可能会有所帮助 - 它也被Phil Haack在“Professional ASP.NET MVC3”一书中称为“视图特定模型”。

许多自动工具或“脚手架”生成器都会创建单个页面/界面,但没有什么可以阻止您为大型模型制作多阶段流程。

一种选择是为流程的每个阶段(即BigProcessPartAViewModel,BigProcessPartBViewModel等)创建View Models,然后生成一个控制器,使用单独的视图处理每个阶段。显然,您需要跨多个阶段管理状态,可能需要使用数据库或会话。

此外,您的模型是您的模型......它不是数据访问。因此,您可能需要一个处理进程内状态的附加模型以及允许进行多阶段事务的数据访问设计。

答案 1 :(得分:1)

没有任何内容表明您的模型需要是单个类或实体。

例如,在Spring MVC中,模型基本上是在Controller中构造的Map,带有键和值。

答案 2 :(得分:1)

接口隔离是SOLID之一,它代表了面向对象编程和设计的5个基本原则。它说,如果你的界面太“胖”,它需要分成更小,更具体的界面。有关Interface segregation wiki page

的更多详情