我的许多类最终需要转换函数。类的转换方法在哪里去
- 的DataRow - >对象转换
- 视图模型< - >模式转换
我的问题是应该在哪里居住功能?
选项1:内源类
public class Employee
{
public EmployeeViewModel ToViewModel() {}
}
var vm = myEmployee.ToViewModel()
选项2:内部目标类
public class EmployeeViewModel
{
public static EmployeeViewMOdel FromModel() {}
}
var vm = EmployeeViewModel.FromModel(myEmployee);
选项3:一转换器内部
public class EmployeeModelViewModelConverter
{
public static EmployeeViewModel ConvertToViewModel(Employee) {}
}
var vm = new EmployeeModelViewModelConverter.ConvertToViewModel(myEmployee);
选项3似乎是最干净的的代价是具有大量的转换器类和静态函数吨或初始化/ IOC注入吨。它也有最丑陋的语法,或者你必须使用扩展添加另一个类。
澄清:我不是在谈论ViewModel/Model类,而是需要将一个类转换为另一个类的任何东西。作为另一个例子,我有一个渲染系统,对象经常需要被转换为可渲染的基元。
:没有单一的答案。如何最好地进行转换将取决于被转换的事物的类型,其生命周期以及一系列其他因素。 – kyoryu 2010-08-12 01:16:57