Ich versuche, das domänenorientierte Design in einem kleinen Projekt anwenden Ich möchte die Authentifizierung der Rest der Benutzer Logik trennen, Ich benutze ein Wertobjekt für die ID (userID) am Anfang habe ich die Benutzer-ID in der gleichen Ebene (Paket) der Benutzer, aber ich erkenne, wenn ich begrenzten Kontext für die Authentifizierung und Benutzer trennen, teilen sie ein gemeinsames Wertobjekt für die Benutzer-ID, so meine Frage ist, wo ich den gemeinsamen Wert setzen oder teilen Objekte? ist richtig, wenn ich ein Paket namens Commons erstellt habe?Wo wird ein gemeinsames Wertobjekt zwischen zwei beschränkten Kontexten eingefügt?
Antwort
Pakete, die "Common" genannt werden, beziehen sich normalerweise auf wiederverwendbare Konzepte, die Sie in Ihren Projekten verwenden, sodass Sie sie nicht in jedem Projekt codieren müssen. Dort ist es üblich, abstrakte Basisobjekte und Schnittstellen für Entitäten, Wertobjekte usw. zu setzen.
Aber es geht nicht um userId. Was Sie sagen, ist, userID in ein "shared kernel" -Modell zu setzen. Es ist eine Option, aber normalerweise wird es nicht empfohlen.
Aus meiner Sicht:
Die Auth BC hat die Konzepte ID, Login, Passwort, Rolle, etc.
Der Benutzer BC hat Begriffe wie Name, Vorname, Adresse, Alter usw., aber es muss auch die ID haben, die es von Auth BC erhält.
Von dem, was ich weiß, haben Sie 2 Möglichkeiten:
(1) Authentifizierung BC ist ein gemeinsamer Kernel. So ist userId freigegeben und gehört auch zu Benutzer BC.
(2) Authentifizierung BC ist ein generisches BC. Daher müssen Sie den Benutzer BC mit dem Auth BC integrieren, um die ID daraus zu erhalten.
Es wird empfohlen, keine Modelle zwischen beschränkten Kontexten zu teilen, Sie können jedoch IDs und sogar einfache Value-Objekte (wie Money
) teilen.
Die allgemeine Regel ist, dass Sie alles teilen kann, die oder dass Änderungen sehr selten und IDs selten Struktur (hier Unveränderlichkeit bezieht sich auf den Quellcode und Wert Unveränderlichkeit) ändern unveränderlich ist.
- 1. Transaktion zwischen Kontexten
- 2. Phpmyadmin Daten zwischen zwei bereits eingefügt einfügen?
- 3. Wie kann Spark RDD zwischen zwei Spark-Kontexten geteilt werden?
- 4. Wo werden neue Polygonpunkte eingefügt?
- 5. Wie teilt man Doktrinsentität in mehr Domäneneinheiten in verschiedenen beschränkten Kontexten auf?
- 6. Git - Gemeinsames Verzeichnis zwischen mehreren Repositories
- 7. finden selten Zeilen zwischen zwei CSV-Dateien gemeinsames Feld mit
- 8. Wie komplexe Wertobjekt zu erstellen?
- 9. Wie zwischen Kontexten in Behat 3 kommunizieren?
- 10. So teilen Sie ein gemeinsames Layout zwischen Aktivitäten ohne Fragment
- 11. Wie füge ich ein Zeichen zwischen zwei Zeichen ein, wo immer sie in einer Zeichenfolge vorkommen?
- 12. MySql Abfrage wo ein Datum zwischen zwei Daten ist zwischen zwei Daten
- 13. Join zwei Dataframe ohne ein gemeinsames Feld in Spark-Scala
- 14. Flugblattmarkierung wird in bestimmten Kontexten nicht angezeigt
- 15. Maven Projektdesign - ein gemeinsames Projekt teilen
- 16. Gemeinsames Exportformat zwischen OpenGL und Szenen-Kit
- 17. Gemeinsames Laufwerk zwischen Azure Virtual Machines
- 18. Wie definiert man ein PyCharm-freundliches Wertobjekt in Python?
- 19. Wie wird ein Leerzeichen zwischen dem Untertitel und einem Komma zwischen einigen Wörtern eingefügt?
- 20. Geschäftslogik für mehrere Wertobjekte - Wo wird die Schleife eingefügt?
- 21. Entity Framework - Composite PK von Wertobjekt erstellen
- 22. PasteSpecial wird mehrmals eingefügt
- 23. Java: getClass() vom beschränkten Typ
- 24. Cmake erstellen ein gemeinsames Objekt
- 25. SQL, zeigen ein gemeinsames Feld
- 26. Wo werden .properties-Dateien in ein Eclipse-Projekt eingefügt?
- 27. Datei auf ein gemeinsames Google-Laufwerk hochladen
- 28. Wie wird eine Lücke zwischen Zeilen einer Tabelle eingefügt?
- 29. Wie konvertiere ich XML in ein Java-Wertobjekt?
- 30. Datatabellen: Stil wird fett, wenn ein Stück Daten eingefügt wird