Heim  >  Artikel  >  Java  >  Item Referenzieren Sie Objekte über ihre Schnittstellen

Item Referenzieren Sie Objekte über ihre Schnittstellen

Linda Hamilton
Linda HamiltonOriginal
2024-10-25 09:42:02178Durchsuche

Item  Referencie os objetos através das interfaces deles

Präferenz für Schnittstellen als Referenztypen:
Wenn eine geeignete Schnittstelle vorhanden ist, sollten Sie Objekte über diese und nicht über die konkrete Klasse referenzieren.
Dies gilt für Parameter, Rückgabewerte, Variablen und Felder.

Flexibilität bei der Nutzung von Schnittstellen:
Durch die Verwendung von Schnittstellen können Sie die Implementierung ändern, ohne den Code zu beeinträchtigen.
Beispiel: Beim Wechsel von LinkedHashSet zu HashSet oder TreeSet ändern Sie einfach den Konstruktor.

Wann Schnittstellen NICHT verwendet werden sollten:
Implementierungsspezifische Funktionalität:
Wenn eine Implementierung etwas bietet, das von der Schnittstelle nicht benötigt wird (z. B. garantiert LinkedHashSet die Iterationsreihenfolge, HashSet jedoch nicht).

Ohne richtige Schnittstelle:
Einige Klassen wie String oder BigInteger haben keine entsprechenden Schnittstellen und müssen direkt verwendet werden.

Klassenbasierte Frameworks:
Beispiel: Auf OutputStream im Paket java.io wird über eine abstrakte Klasse verwiesen, nicht über eine Schnittstelle.

Implementierungsspezifische Methoden:
Beispiel: PriorityQueue implementiert Queue, verfügt aber über eine comparator()-Methode, die in Queue nicht vorhanden ist. Verwenden Sie die Klasse nur, wenn Sie diese zusätzliche Methode benötigen.

Vorteil:
Durch die Verwendung von Schnittstellen wird das Programm flexibler und modularer, sodass Sie Implementierungen problemlos ändern können, ohne vorhandenen Code zu beschädigen.

Codebeispiele
Gutes Beispiel: Schnittstelle als Typ verwenden

Set<String> s = new LinkedHashSet<>();

Schlechtes Beispiel: Verwendung der konkreten Klasse als Typ

LinkedHashSet<String> s = new LinkedHashSet<>();

Flexibilität: Änderung der Implementierung ohne Auswirkungen auf den Code

Set<String> s = new TreeSet<>();

Beispiel für die Verwendung einer Abschlussklasse wie String

String str = "Hello";

Beispiel für die Verwendung einer Framework-Basisklasse

OutputStream output = new FileOutputStream("file.txt");

Das obige ist der detaillierte Inhalt vonItem Referenzieren Sie Objekte über ihre Schnittstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn