Я использовал ваше решение в прошлом, и единственная проблема, с которой я столкнулся, заключается в том, что «общие» или «статические» методы не поддерживают наследование. Когда ваше приложение расширяется, вам вполне может понадобиться поддержка различных типов "OrderControllers".
Утвержденный способ поддержки различных контроллеров OrderOr теоретически заключается в создании фабрики:
OrderControllerFactory.ConfiguredOrderController().GetOrder(42);
Проблема здесь в следующем: какой тип возвращается функцией «ConfiguredOrderController ()»? Потому что он должен иметь статический метод «GetOrder (int id)» - и статические методы не поддерживаются наследованием или интерфейсами. Обходной путь - не использовать статические методы в классе OrderController.
public interface IOrderController
{
Order GetOrder(int Id)
}
public class OrderController: IOrderController
{
public Order GetOrder(int Id)
{}
}
и
public class OrderControllerFactory()
{
public IOrderController ConfiguredOrderController()
{}
}
Следовательно, вам, вероятно, будет лучше, если использовать нестатические методы для контроллера.