我们正在使用MVC模式构建一个网站。到目前为止,我们构建的所有页面都使用了必须对Reference数据进行操作的模型(在网站首次加载时缓存)。 但是现在我们已经达到了流程的那个阶段,我们必须处理事务数据(特定于该流程)。到目前为止,我们通过提供所有数据来创建模型类,因为它们都已经缓存了。但是现在我们必须处理事务数据,我们应该做同样的事情,我们预先获得所有数据并创建一个模型对象,或者我们应该让模型类通过进行服务调用来获取数据。
答案 0 :(得分:1)
如果您真正使用MVC,那么您的控制器应拦截应采取的特定操作,调用任何与数据相关的请求,并将数据推送到模型对象中,以便可以将模型放入视图中。让模型从数据库中填充自己几乎没有什么好处,因为你已经拥有了一个能够以更有凝聚力的方式完成工作的控制器。
答案 1 :(得分:0)
第一种方法的缺点是可能永远不会使用预先获取的数据。所以我们采用第二种方法,模型获取数据。为了解耦模型和服务调用,我们使用了一个接口。欢迎替代方案。
答案 2 :(得分:0)
模型对象是通过对数据库的查询构建的。这是一般方法。
可以通过对其他服务器和数据库的Web服务请求来构建模型对象。这几乎是一回事。
如果 - 对于某些性能调整 - 你预先构建所有的模型对象,很好。这是一个特例。
我更喜欢使用amM层来处理对象缓存,所以我不预取任何东西。相反,它保留在ORM缓存中。
答案 3 :(得分:0)
在真正的MVC中,模型负责根据来自控制器的指令更新自身。因此,是的。模型,只有模型,应该进行服务调用