Czy ktoś może mi sensownie wytłumaczyć czym w Domain Driven różni się application service od domain serviceu,
oraz co to jest agregat?
Przeczytałem kilka artykułów szukałem, googlałem ale nie widzę sensownego przykładu, który by pokazał co to jest/różnice, zobrazował.
Tylko suche definicje, które co najlepsze wzajemnie się wykluczają.
Przepraszam, że wszystkie pojęcia są po angielsku, ale po pierwsze uczę się z angielskojęzycznych książek, a po drugie nie chcę na szybko przetłumaczyć czegoś, co po przetłumaczeniu będzie niezrozumiałe ;).
Aggregate łączy ze sobą poszczególne entities. Jeżeli samodzielne istnienie jakiegoś entity jest bez sensu bez istnienia innego entity to łączy się je w aggregates. Aggregate root to takie entity, które jest rodzicem. Klasyczny przykład to pozycja zamówienia oraz zamówienie. Oba będą tworzyć aggregate, który jest zamówieniem, a konkretne entity - zamówienie będzie naszym aggregate root.
Domain service tak jakby zarządzają twoimi modelami (agregatami na przykład). Zajmują się ich persistence, transakcjami, tworzeniem, etc. Application service jest wyżej - to już wystawiasz na zewnątrz, coś z czego można faktycznie skorzystać, np. webservice.
Dzięki, za odpowiedź :)
Właśnie ja chciałbym jakiś przykład np agregatu, aggregate root, aggregate boundary, itp.
Jakieś nazwy klas, może wtedy łatwiej będzie mi to ogarnąć na przykładzie