我的应用程序目前遵循一种服务模式,其中模型很薄且mvc-blind,控制器调用从模型中检索数据的服务。
现在,我的控制器根据从服务或客户端获取的数据构建和使用ViewModels。
我想知道的是 - 将ViewModel类重新定位到服务层是否明智?
之前:
后
一个比另一个好吗?为什么呢?
答案 0 :(得分:3)
之前是更好的方法。您的视图模型应该是您的视图的模型,顾名思义。
它可能包含服务检索的数据,但也可能使用该特定视图所需的其他数据进行扩充。
此外,视图模型可能是特定于UI技术的,而服务应该完全与UI无关。服务代码可能在UI技术中可重用,但视图模型代码可能不是。
事实上,在胖客户端应用程序中,您的视图模型可能不仅仅是数据传输对象,还包含表示逻辑以及管理用户状态等。您的服务代码很可能不会绑定到具体的客户实施。