所以我是新的泛型。但泛型似乎是減少代碼的好方法。這裏是場景。我有一個MVC Web API。最好的方式使用泛型
http://www.google.com/{controller}/{chartType}/{id}
注意:id爲可選
我有幾個圖表類型的返回相似的對象:
- HourlyDeviceChart
- HourlyUsersCharrt
- 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
}
的可能重複(http://stackoverflow.com/questions/9949406/最好的方式來做這個通用的抽象類在C) – nawfal 2014-01-16 15:49:54