私はこれを行うに私のコントローラのいずれかで、いくつかの方法があります:ここでこのコードをリファクタリングするには、ASP.NET MVCのDRY原則をどのように使用できますか?
ViewData["Customers"] = LoadCustomers();
ViewData["Employees"] = LoadEmployees();
ViewData["Statuses"] = LoadStatuses();
etc......
をLoadCustomers()、しかしLoadEmployees、LoadStatusesおよび他のすべてが事実上まったく同じロジックですされています
private static SelectList LoadCustomers()
{
IList<Customer> customers;
try
{
IServiceCallService scService = new ServiceCallService();
customers = scService.GetCustomers();
Customer c = new Customer
{
ID = "",
Name = "-- Select a Facility --"
};
customers.Insert(0, c);
}
catch
{
customers = new List<Customer>();
Customer c = new Customer
{
ID = "",
Name = "-- No Facilities on File --"
};
customers.Insert(0, c);
}
return new SelectList(customers, "ID", "Name");
}
このコードをもっとうまく書くにはどうすればいいですか?新しい選択リストを追加するたびに新しいメソッドは必要ありません。それはジェネリック医薬品のための良い候補であるかもしれないようにこれが見えます
あなたはまた、そのtry/catchブロックを取り除く必要があります。それはどれほど深刻であっても、すべての例外を食べるでしょう。致命的なエラーが発生した場合は、続行しないでください。 –