模型应进行服务调用以获取数据
时间:2020-03-06 15:02:16 来源:igfitidea点击:
我们正在使用MVC模式构建网站。到目前为止,我们构建的所有页面都使用了必须对参考数据进行操作的模型(当网站首次加载时会被缓存)。
但是现在我们已经到达流程的那个阶段,我们必须处理事务性数据(特定于该流程)。到现在为止,我们已经通过提供所有数据来创建模型类,因为它们都已经被缓存了。但是现在我们必须处理事务数据,我们应该做同样的事情来预先获取所有数据并创建一个模型对象,还是应该让模型类通过调用服务来获取数据。
解决方案
第一种方法的缺点是,可能永远不会使用预先获取的数据。因此,我们采用了第二种方法,其中模型获取数据。为了分离模型和服务调用,我们使用了一个接口。欢迎其他选择。
通过查询数据库来构建模型对象。那是一般的方法。
可以通过对其他服务器和数据库的Web服务请求来构建模型对象。那几乎是同一回事。
如果-为了进行某些性能调整-我们预先构建了所有模型对象,则很好。那是特例。
我更喜欢使用ORM层来处理对象缓存,因此我不预取任何东西。而是,它保留在ORM缓存中。
如果我们真正使用的是MVC,则控制器应拦截应采取的特定操作,调用与数据相关的所有请求,然后将数据推送到模型对象中,以便可以将模型放入视图中。从数据库中填充模型本身几乎没有什么好处,因为我们已经拥有一个可以以更紧密结合的方式完成工作的控制器。
在真正的MVC中,模型负责响应于来自控制器的指令来更新自身。因此,是的。模型,并且只有模型,应该进行服务调用