stalxed
Новичок
Сейчас просматриваю книгу IDDD(жду не дождусь, когда приедет книжное издание).
Интереснее всего глава Application.
Суть в том, что из Application Layer в Presentation Layer автор(Vaughn Vernon) предлагает передавать модели Domain Layera следующими способами:
1) DTO Data Transfer Object
2) DPO http://vaughnvernon.co/?page_id=40
3) Mediator для "раскрытия" внутреннего состояния агрегата.
4) Интересная идея трансформеров для application сервисов:
Т.е. подсовываем один из:
5) И Presentation Model являющаяся банальным адаптером.
Все эти идеи понятны и банальны.
Но не могу понять, что же такого ужасного вызвать сервис, получить от него модель и эту же модель передать в шаблонизатор?
Конечно, есть риск, что в шаблоне произойдёт вызов не get метода(наподобие banUser, convertToAdmin, etc), но опасность не сильно ли преувеличена?
Да, медиатор для раскрытия "потрохов" агрегата - понятно.
Но DTO, DPO, Presentation Model - это разве не попросту потеря времени и увеличение количества работы при изменение модели?
Интереснее всего глава Application.
Суть в том, что из Application Layer в Presentation Layer автор(Vaughn Vernon) предлагает передавать модели Domain Layera следующими способами:
1) DTO Data Transfer Object
2) DPO http://vaughnvernon.co/?page_id=40
3) Mediator для "раскрытия" внутреннего состояния агрегата.
4) Интересная идея трансформеров для application сервисов:
Код:
public interface TenantIdentityService {
...
public TenantData provisionTenant(
String aTenantName,
String aTenantDescription,
boolean isActive,
FullName anAdministratorName,
EmailAddress anEmailAddress,
PostalAddress aPostalAddress,
Telephone aPrimaryTelephone,
Telephone aSecondaryTelephone,
String aTimeZone,
TenantDataTransformer aDataTransformer);
- CalendarWeekCSVDataTransformer
- CalendarWeekDPODataTransformer
- CalendarWeekDTODataTransformer
- CalendarWeekJSONDataTransformer
5) И Presentation Model являющаяся банальным адаптером.
Все эти идеи понятны и банальны.
Но не могу понять, что же такого ужасного вызвать сервис, получить от него модель и эту же модель передать в шаблонизатор?
Конечно, есть риск, что в шаблоне произойдёт вызов не get метода(наподобие banUser, convertToAdmin, etc), но опасность не сильно ли преувеличена?
Да, медиатор для раскрытия "потрохов" агрегата - понятно.
Но DTO, DPO, Presentation Model - это разве не попросту потеря времени и увеличение количества работы при изменение модели?