630 Stimmen

Wann verwenden: Java 8+ Interface-Standardmethode vs. abstrakte Methode

Java 8 ermöglicht die Standardimplementierung von Methoden in Interfaces, die als Default Methods bezeichnet werden.

Ich bin verwirrt darüber, wann ich diese Art von Interface-Standardmethode verwenden sollte, anstelle einer abstrakten Klasse (mit abstrakten Methoden).

Wann sollte ein Interface mit Standardmethoden verwendet werden und wann sollte eine abstrakte Klasse (mit abstrakten Methoden) verwendet werden? Sind die abstrakten Klassen in diesem Szenario immer noch nützlich?

-2voto

mentallurg Punkte 4630

Bitte denken Sie zuerst an das Open/Closed-Prinzip. Die Standardmethoden in Schnittstellen VERLETZEN es. Das ist ein schlechtes Feature in Java. Es fördert schlechtes Design, schlechte Architektur, geringe Softwarequalität. Ich würde vorschlagen, auf die Verwendung von Standardmethoden vollständig zu verzichten.

Stellen Sie sich ein paar Fragen: Warum können Sie Ihre Methoden nicht in der abstrakten Klasse platzieren? Würden Sie dann mehr als eine abstrakte Klasse benötigen? Denken Sie dann darüber nach, wofür Ihre Klasse verantwortlich ist. Sind Sie sicher, dass alle Methoden, die Sie in die einzelne Klasse aufnehmen werden, wirklich den gleichen Zweck erfüllen? Möglicherweise unterscheiden Sie mehrere Zwecke und werden dann Ihre Klasse in mehrere Klassen aufteilen, für jeden Zweck eine eigene Klasse.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X