MVC 4 在哪里编写映射逻辑

本文关键字:映射 在哪里 MVC | 更新日期: 2023-09-27 18:36:33

我正在开发一个MVC 4网站,我的控制器调用了一个服务,我必须映射(一对一映射)对我的视图模型的响应。我能想到三种可能的方法:-

  1. 在控制器本身中进行映射
  2. 有一个单独的映射层(我的项目中的单独文件夹),我的所有映射逻辑都将驻留在其中,控制器将调用此方法
  3. 在视图模型类中具有映射逻辑。

想法 2 和 3 显然看起来更好,因为映射方法可以跨控制器重用。

但是我对使用2,3中的哪一个感到困惑。如果我使用方法 2,职责将得到很好的定义,但会添加另一个类文件,从长远来看,这可能会使解决方案的可维护性降低

如果我使用方法 3,那么映射逻辑被限制在视图模型中,但我觉得它违反了 SRP(单一责任原则),因为视图模型类同时负责显示元素和映射逻辑。

关于我们应该将映射逻辑放在哪里,是否有一个好的做法?如果您有任何链接,也请分享。

MVC 4 在哪里编写映射逻辑

就个人而言,我会说停止自杀,只使用像AutoMapper这样的东西,但如果你想走手动路线,我会推荐选项2,原因与我推荐AutoMapper的原因大致相同:这种类型的东西属于库。我不明白这会更难维护。事实上,将所有映射逻辑包含在项目中的一个类或多个类中听起来比任何其他解决方案都更容易维护。

我提倡选项 #2,因为映射层类的职责明确定义。

在我看来,映射逻辑的明显位置完全证明了类数量的增加是合理的。我把它比作有多个JavaScript文件作为模块,虽然它增加了要维护的文件数量,但它可以更清楚地了解系统中负责什么。