Имеет ли смысл сгруппировать все интерфейсы вашего уровня домена (модули, модели, сущности, доменные службы и т. Д.) На уровне инфраструктуры? Если нет, имеет ли смысл создавать «общий» проект / компонент, который объединяет все это в общую библиотеку? В конце концов, определение «уровень инфраструктуры» включает «общие библиотеки для уровней домена, приложения и пользовательского интерфейса».
Я подумываю создать свою кодовую базу вокруг уровней DDD: пользовательский интерфейс, приложение, домен, инфраструктура. Это создаст 4 проекта с уважением. Я хочу сказать, что вы ссылаетесь на уровень инфраструктуры с уровня домена. Но если вы определяете интерфейсы в проекте уровня домена, например, для IPost, тогда у вас будет циркулярная ссылка, когда вам нужно будет ссылаться на проект уровня домена из проекта инфраструктуры при определении метода IPostRepository.Save (IPost post). . Отсюда идея «определить все интерфейсы в общей библиотеке».
Возможно, репозиториям не следует ожидать сохранения объекта (IPostRepository.Save (IPost post); вместо этого следует ожидать параметров объекта (хотя это может быть длинный набор параметров в Save ()). Учитывая, что это может быть идеальная ситуация, которая показывает, когда объект становится чрезмерно сложным, и для этого следует изучить дополнительные объекты-значения.
Мысли?