所以我是泛型的新手。但是泛型似乎是减少代码的好方法。这是场景。我有一个 MVC Web API。
http://www.google.com/{controller}/{chartType}/{id}
注意:id 是可选的
我有几种返回相似对象的图表类型:
- 每小时设备图表
- 每小时用户图表
- HourlyAvgProcessingTime 等。
我只想有一种方法来评估图表类型参数并执行相应的操作。而不是 8 或 10 种方法。
如果我的设计需要重构,我会接受。我愿意接受建议。这里的想法是减少一些代码。我不想在 Web API 中公开 10 个方法,然后在另一个类中再公开 10 个相应的方法。只是显得多余。
一如既往地欢迎您的建议!
API公开的方法:
IEnumerable<T> GetChart(string chartType)
{
switch(chartType)
{
case "DeviceChart":
return repository.HourlyDeviceChart();
break;
case "UserChart":
return repository.HourlyUsersChart();
break;
}
}
//Then the class that handles all the work would look something like the below
IEnumerable<HourlyDeviceChart> HourlyDeviceChart()
{
// select appropriate items from the queue
// populate HourlyDeviceChart object
// add object to list
// return HourlyDeviceChart list
}
IEnumerable<UserDeviceChart> HourlyUsersChart()
{
// do more of the same
}