Я ищу отличный источник NDDDSample из http://code.google.com/p/ndddsample, чтобы узнать о DDD. Путаюсь с чем-то
В CargoRepository есть метод Find (), который вызывается BookingService.AssignCargoToRoute () и CargoTrackingController.Search ():
Cargo cargo = CargoRepository.Find(trackingId);
CargoRepository также имеет метод Store (), вызываемый из BookingService.AssignCargoToRoute ():
Cargo cargo = cargoRepository.Find(trackingId);
if (cargo == null)
{
throw new ArgumentException("Can't assign itinerary to non-existing cargo " + trackingId);
}
cargo.AssignToRoute(itinerary);
cargoRepository.Store(cargo);
Моя путаница заключается в том, что, похоже, ничто не мешает CargoTrackingController вызывать CargoRepository.Store (), который обходит бизнес-логику в BookingService.AssignCargoToRoute ()
Почему это разрешено в DDD? Следует ли разделить репозиторий на два: один для чтения для приложения / ui / domain / service и один для записи для домена / services?