2012-04-01 15 views

Antwort

3

Schnittstelle sind für Business-Logik, es ist das Verhalten oder die Funktionalität Ihres Moduls zu deklarieren. POJOs sind nur Objekte, die Daten enthalten und keine Logik zu tun haben - also nicht.

+0

Das OO-Paradigma sagt uns, dass wir die Daten und ihre Funktionalität in eine Klasse einordnen sollten. Dies zu spalten kann aus technischen Gründen nützlich sein, verletzt jedoch OO. – BetaRide

+0

Wenn wir über PlainOldJavaObject sprechen, sprechen wir über Objekte, die nur Daten (Eigenschaften) ohne Logik-Getter und Setter enthalten. Sie haben Recht mit Objekten mit Funktionalität (die wahrscheinlich Daten enthält) - und es sollte nicht aufgeteilt werden. – shem

+0

> Das OO-Paradigma sagt uns, dass wir die Daten und ihre Funktionalität in eine Klasse einordnen sollten. - Backt ein Kuchen selbst? Ist 'cake.bake()' sinnvoll? –

1

Sie können Schnittstellen erstellen, wenn es sinnvoll ist: Gibt es mehrere Klassen mit derselben Funktionalität (d. H. Werden sie die gleiche Schnittstelle verfügbar machen)? In diesem Fall können Sie eine Schnittstelle mit diesen (Geschäftslogik-) Methoden erstellen.

Auch eine Schnittstelle enthält keine Variablen, um einen Status zu verfolgen, diese sind Teil der Klasse, die die Schnittstelle implementiert. Mehrere Klassen mit derselben Schnittstelle können es auf andere Weise implementieren, so dass keine Variablen (und somit Getter und Setter) in der Schnittstelle angegeben werden müssen.

0

Schnittstelle sollte definitiv keine Getter und Setter enthalten. Interface stellt nur Funktionen bereit, die Ihre Klasse ausführen kann (wenn Sie Getter/Setter benötigen - verwenden Sie abstrakte Klassen). Felder normalerweise (nicht immer, natürlich) nur ein Teil der Implementierung.

Also, wenn Sie Ihre Klasse nur Daten enthält, gibt es keine Notwendigkeit, in Schnittstellen

0

Man könnte argumentieren, dass eine Schnittstelle für eine Entität unter Verwendung von Clients verwendet werden kann aus der Tatsache zu entkoppeln, dass sie mit JPA handeln. Ich habe manchmal die Situation, dass ich mehrere abgeleitete nicht persistente Business-Objekte neben persistenten Entitäten, die beide die gleiche Schnittstelle teilen. In solchen Fällen finde ich das angemessen. Sie sollten solche Anwendungen jedoch auf Fälle beschränken, in denen Sie nur Transaktionen lesen müssen, wenn Sie Transaktionen nicht beachten müssen.

0

Nun, ich glaube nicht, dass Unternehmen/pojo als Schnittstelle macht keinen Sinn, weil Unternehmen oder pojo hat Eigenschaften mit Getter und Setter Und für Daten verwendet. Angenommen, Sie stellen die Schnittstelle und ihre Implementierung bereit (in POJO, die die Schnittstelle implementiert), und Sie behalten sie in der Datenbank bei, indem Sie die Schnittstellenreferenz zur Implementierungsklasse verwenden. Es ist in Ordnung, dass es beibehalten wird, aber was ist, wenn Sie einen anderen Pojo bereitstellen, der dieselbe Schnittstelle implementiert. Es wird definitiv die Bedeutung von Pojo verletzen und natürlich ist es verwirrend, welche pojo bestehen bleiben.

Verwandte Themen