Я на 80% уверен, что мне не следует задавать этот вопрос, потому что это может показаться отрицательным, и я имею в виду отсутствие неуважения к кому-либо, особенно к автору этой книги. Я видел несколько сообщений, рекомендующих эту книгу и ее компаньон project. Я не читал книгу, но сегодня я провел несколько часов, изучая этот проект. И хотя это выглядит очень полно, мне очень трудно разобраться, насколько детали разных вещей разбросаны. Я борюсь в своих собственных проектах, сколько я должен изменить, если сущность меняется, и этот проект не делает меня очень удобным в качестве решения.
Например, существует объект Employee, который наследуется от Лица. У человека есть конструктор с именем, фамилией и т.д., И, следовательно, Employee. Private to Employee - это члены для имени, фамилии, а также для общедоступных объектов.
Существует EmployeeFactory, который знает о свойствах Employee и Person, а также имена столбцов SQL (чтобы вытащить значения из считывателя).
Существует EmployeeRepository с нереализованными методами PersistNewItem и PersistUpdatedItem, которые, как я подозреваю, если они будут реализованы, будут строить SQL для операторов INSERT и UPDATE, как я вижу в CompanyRepository. Они записывают свойства в строки для построения SQL.
Существует "Контракт данных" PersonContract с теми же частными членами и общедоступными свойствами, что и Person, и EmployeeContract, который наследует от PersonContract, как Employee does Person, с общедоступными свойствами, отражающими объекты.
Существует статический класс "Конвертер" со статическими методами, которые отображают объекты в Контракты, включая
EmployeeContract ToEmployeeContract(Employee employee)
который копирует поля от одного к другому, включая поля Person. Может быть сопутствующий метод, который идет в другую сторону - не уверен.
Я думаю, что есть и юнит-тесты.
Во всех случаях я подсчитываю 5-10 классов, методов и конструкторов с подробными сведениями об объектных свойствах. Возможно, они автогенерированы - не уверен. Если мне нужно было добавить "Приветствие" или другое свойство Лицу, мне пришлось бы корректировать все эти классы/методы? Я уверен, что что-то забуду.
Опять же, я имею в виду отсутствие неуважения, и это, кажется, очень подробный, подробный пример для книги. Это как DDD?