Die allgemeine Antwort lautet " Nein" , da Sie niemals Code hinzufügen sollten, ohne einen bestimmten, konkreten Grund dafür zu haben, und es gibt keinen allgemeinen Grund für eine solche Schnittstelle.
Abgesehen davon kann es manchmal einen guten Grund geben. Aber in allen Fällen, die ich gesehen habe, waren diese Schnittstellen teilweise und deckten nur eine oder einige Eigenschaften ab, die von mehreren Klassen geteilt wurden, die ich polymporphisch verwenden wollte, ohne ihnen eine gemeinsame Superklasse zu geben. Typische Kandidaten sind eine Id
Eigenschaft, die in einer Art Registrierung verwendet werden soll, oder eine Name
Eigenschaft, die dem Benutzer angezeigt werden soll. Es kann jedoch in jedem Fall nützlich sein, wenn Sie möchten, dass Code mit allem, was ein X XSource
enthält , umgehen kann. Erstellen Sie einfach eine Schnittstelle, die die getX
(und nur bei Bedarf die setX
) Methoden enthält.
Aber eine separate Schnittstelle für jede Modellklasse, die alle Eigenschaften enthält? Ich kann mir keinen guten Grund dafür vorstellen. Ein schlechter Grund wäre ein schlecht entworfenes Framework, das dies erfordert. Entity EJBs haben genau das getan, wenn ich mich richtig erinnere. Zum Glück waren sie so schlecht, dass sie nie viel Bodenhaftung erlangten und seit EJB 3.0 veraltet sind
Anmerkung: Vermeiden Sie es, den Begriff "Wertobjekt" zu verwenden, um Java-Beans mit nur trivialen Gettern und Setters zu beschreiben. Dies steht im Widerspruch zur allgemeineren Definition von Wertobjekt als etwas ohne Identität, das normalerweise unveränderlich ist. Ein besserer Begriff wäre DTO oder Modellklasse - obwohl im letzteren Fall anzumerken ist, dass anämische Domänenmodelle als Antipattern betrachtet werden.