Wir versuchen, mithilfe eines DDD-Ansatzes Daten aus unserer aufgeblähten Service-Schicht in unsere Domain-Schicht zu verschieben. Wir haben derzeit eine Menge Geschäftslogik in unseren Diensten, die über den gesamten Ort verteilt ist und nicht von der Vererbung profitiert.
Wir haben eine zentrale Domain-Klasse, auf die sich der Großteil unserer Arbeit konzentriert - einen Trade. Das Handelsobjekt weiß, wie es sich selbst bewertet, wie es das Risiko einschätzt, sich selbst validiert usw. Wir können dann die Bedingungen durch Polymorphie ersetzen. ZB: SimpleTrade wird sich auf die eine Weise selbst bewerten, ComplexTrade wird sich auf die andere Weise bewerten.
Wir sind jedoch besorgt, dass dies die Trade-Klasse (n) aufblähen wird. Es sollte eigentlich für seine eigene Verarbeitung verantwortlich sein, aber die Klassengröße wird exponentiell zunehmen, wenn mehr Funktionen hinzugefügt werden.
Wir haben also die Wahl:
- Setzen Sie die Verarbeitungslogik in die Klasse Trade. Die Verarbeitungslogik ist jetzt polymorph, basierend auf der Art des Handels, aber die Handelsklasse hat jetzt mehrere Verantwortlichkeiten (Preisgestaltung, Risiko usw.) und ist groß
- Fügen Sie die Verarbeitungslogik in eine andere Klasse wie TradePricingService ein. Mit dem Trade-Vererbungsbaum nicht mehr polymorph, aber Klassen sind kleiner und einfacher zu testen.
Was wäre der vorgeschlagene Ansatz?