Wir haben eine Web-Anwendung, wo Sie auf zwei Dienste/Funktionen ("Kaufen" und "Mieten") zugreifen können. In einem ersten Schritt müssen Sie eine ProductCategory aus einer DropDownList auswählen. Nicht jede Produktkategorie kann gekauft oder gemietet werden. Wir haben 5 Produktkategorien:Domain Driven Design-Lookup-Tabellen als aggregierter Root
- A: Kauf/Miete
- B: Kauf/Miete
- C: Kauf/Miete
- D: Nur
- E kaufen: Nur Miete
Wie kann ich das auf eine domänenbasierte Art und Weise gestalten? In meiner Meinung nach ist die Kauf/Miete Eigenschaft nicht eine Eigenschaft des Product sondern des Dienstes selbst:
public class Service
{
public string Name; // Buy or Rent
public List<ProductType> AllowedTypes;
}
bearbeiten Zweites Beispiel:
Beiden Dienste haben ein paar gemeinsamen Status (zB erstellt oder beendet), aber auch Sonderstatus (zB "Buy-Status-1"). Ist es eine gute Idee, für beide Dienste dieselbe Statusklasse zu verwenden? Oder besser eine Fachklasse pro Dienst BuyStatus/RentStatus.
Die Beziehung ist fest. Aber in Zukunft könnte es mehr Dienste wie einen zusätzlichen Verkaufsservice geben. – LuckyStrike
Meine Erfahrung sagt mir, dass, wenn ich glaube, dass etwas behoben ist, die meisten Male falsch sind;) –