我正在一个 MVC 4 网站上工作,我的控制器在该网站上调用一个服务,并且我必须将响应映射(一对一映射)回我的视图模型。我可以想到三种可能的方法:-
- 在控制器本身中有映射
- 有一个单独的映射层(我的项目中的一个单独的文件夹),我的所有映射逻辑都将驻留在其中,控制器将调用此方法
- 在 viewmodel 类中有映射逻辑。
想法 2 和 3 显然看起来更好,因为映射方法可以跨控制器重用。
但我对使用 2 、 3 中的哪一个感到困惑。如果我使用方法 2,职责将得到很好的定义,但会添加另一个类文件,这可能会使解决方案在长期内不太易于维护
如果我使用方法 3,那么映射逻辑被限制在视图模型中,但我觉得它违反了 SRP(单一责任原则),因为视图模型类同时负责显示元素和映射逻辑。
关于我们应该将映射逻辑放在哪里,是否有一个好的做法?如果您有任何链接,请也分享这些链接。