Zgodnie z DDD (Niebieska księga, Evans) fabryka jest odpowiedzialna za stworzenie Korzenia Agregatów w prawidłowym stanie. Czy to oznacza, że powinien być w stanie utworzyć identyfikator techniczny (objectId w świecie mongoDB), a także identyfikator domeny?DDD i MongoDB: Czy można pozwolić Mongo na tworzenie identyfikatorów obiektów?
Z jednej strony wydaje się to technicznym szczegółem i wydaje się w porządku, aby Mongo obsługiwał tworzenie identyfikatora.
Z drugiej strony włączenie sprawdzania przez id (poprzez posiadanie getById
w repozytorium DDD) udostępnia identyfikator techniczny do domeny, co z kolei spowodowałoby, że Fabryka będzie go tworzyć.
Być może nie mogę się zorientować na różne przypadki użycia/nakładania się, itp. Technicznego identyfikatora kontra DomainId lub może jestem nadgorliwy, ale i tak chciałbym wyrazić twoją opinię.
W skrócie: W DDD: Czy fabryka powinna być w stanie utworzyć identyfikator techniczny, a także identyfikator domeny?
możliwa realizacja: Hi/Lo (How to set the hilo sequence starting value in MongoDB Norm?)
EDIT: chociaż hi/lo sposób eksponuje fabryki do warstwy trwałości, która jest czymś tylko Repository powinien wiedzieć. hmmm
Dzięki
Niewielki komentarz nie do końca odpowiedni; MongoDB w rzeczywistości nie tworzy identyfikatorów, które wykonuje klient (sterownik) (z wyjątkiem operacji upsert). –