Matti: per Interace Datentyp definieren möglich?

Beitrag lesen

Hallo,

was für einen Sinn hätte es denn, Attribute auf einem Interface zu definieren? Der Sinn von einem Interface ist es doch, dass es unterschiedliche Ausprägungen/Implementierungen des Interfaces geben kann. Wenn du aber reine Attribute definierst, dann macht eine zweite Implementierung gar keinen Sinn.

Deswegen ist es m.E. korrekt, dass Interfaces primär Methoden anbieten. Wie dedlfix sagte, kannst du immernoch Attribute über Setter anbieten. Der Vorteil ist aber nun, dass du die eigentliche Implementierung des Setters austauschen kannst - z.B. eine Implementierung, bei der der Wert erst während des Aufrufs aus einer externen Datenquelle (File, Schnittstelle, Datenbank, ...) berechnet wird - das könntest du mit reinen Attributen einfach nicht.

Ich habe mal einen "Mischbetrieb" (teils Attribute, teils Methoden) ignoriert.

tl;dr: nutze Getter in echten Klassen für solche DTOs. Nutze Interfaces, wenn du unterschiedliche Implementierung anbieten willst. Diese sind i.d.R. für DTOs uninteressant.

Viele Grüße Matti