Model应该进行服务调用以获取数据

时间:2008-10-02 17:03:12

标签: java .net model-view-controller design-patterns web

我们正在使用MVC模式构建一个网站。到目前为止,我们构建的所有页面都使用了必须对Reference数据进行操作的模型(在网站首次加载时缓存)。 但是现在我们已经达到了流程的那个阶段,我们必须处理事务数据(特定于该流程)。到目前为止,我们通过提供所有数据来创建模型类,因为它们都已经缓存了。但是现在我们必须处理事务数据,我们应该做同样的事情,我们预先获得所有数据并创建一个模型对象,或者我们应该让模型类通过进行服务调用来获取数据。

4 个答案:

答案 0 :(得分:1)

如果您真正使用MVC,那么您的控制器应拦截应采取的特定操作,调用任何与数据相关的请求,并将数据推送到模型对象中,以便可以将模型放入视图中。让模型从数据库中填充自己几乎没有什么好处,因为你已经拥有了一个能够以更有凝聚力的方式完成工作的控制器。

答案 1 :(得分:0)

第一种方法的缺点是可能永远不会使用预先获取的数据。所以我们采用第二种方法,模型获取数据。为了解耦模型和服务调用,我们使用了一个接口。欢迎替代方案。

答案 2 :(得分:0)

模型对象是通过对数据库的查询构建的。这是一般方法。

可以通过对其他服务器和数据库的Web服务请求来构建模型对象。这几乎是一回事。

如果 - 对于某些性能调整 - 你预先构建所有的模型对象,很好。这是一个特例。

我更喜欢使用amM层来处理对象缓存,所以我不预取任何东西。相反,它保留在ORM缓存中。

答案 3 :(得分:0)

在真正的MVC中,模型负责根据来自控制器的指令更新自身。因此,是的。模型,只有模型,应该进行服务调用