Вариант 1: Сторона чтения моего приложения CQRS возвращает DTO, например:
Код: Выделить всё
public interface IOrderReadService
{
public OrderDto Load(int id);
}
public class SomeController
{
public ActionResult SomeAction(int id)
{
var dto = ObjectFactory.GetInstance().Load(id);
var viewModel = Mapper.Map();
return View(viewModel);
}
}
public class SomeOtherController
{
public ActionResult SomeOtherAction(int id)
{
var dto = ObjectFactory.GetInstance().Load(id);
var viewModel = Mapper.Map();
return View(viewModel);
}
}
Код: Выделить всё
public interface IOrderReadService
{
public SomeViewModel LoadSomething(int id);
public SomeOtherViewModel LoadSomethingElse(int id);
}
public class SomeController
{
public ActionResult SomeAction(int id)
{
return View(ObjectFactory.GetInstance().LoadSomething(id));
}
}
public class SomeOtherController
{
public ActionResult SomeOtherAction(int id)
{
return View(ObjectFactory.GetInstance().LoadSomethingElse(id));
}
}
Имеет ли один подход явные преимущества перед другим? Если да, то какие?