Ich habe einige Methoden, die in einigen meiner Domain-Klassen üblich sind. Ich möchte die Menge an repliziert Code reduzieren und zwei Lösungen in den Sinn kommen:
1) Setzen Sie die gängigen Methoden in eine BaseDomain-Klasse und erben die Methoden davon in meinen Domänen
2) Setzen Sie die gängigen Methoden in einem commonDomainMethodService, die ich kann Import in meine Domänen
Ich denke, ich sollte Vererbung allein lassen, es sei denn, die Domänen teilen gemeinsame Eigenschaften, aber ich bin mir nicht sicher. Ist eine dieser Methoden vorteilhafter als die andere? Ist eines mehr im Einklang mit Grails Best Practices?
Zum Beispiel ein Verfahren, das zwei Domain-Instanzen basierend auf einem Parameter vergleicht:
Vererbung oder Service für Common Domain-Methoden?
int compareInstances(instance, otherInstance, propertyName){
return //some logic to compare the instances based on the type of property
}
Können Sie ein Beispiel für die Art der Methode angeben, die Sie implementieren müssen? –
Es hängt wirklich davon ab, mit welcher Logik Sie es zu tun haben. Wenn Sie etwas von dem fraglichen Code veröffentlichen könnten, würde es _TON_ helfen. – cdeszaq
Zum Beispiel eine Methode, die zwei Instanzen einer Domäne bereitstellt und diese basierend auf einer Eigenschaft vergleicht, die ebenfalls als Parameter bereitgestellt wird. – Weezle