act -orientierte Programmierung anstelle von Gesichtsprogrammierungen ist die beste Praxis, da sie die Flexibilität und Skalierbarkeit des Codes verbessert und den Kernprinzipien der objektorientierten Programmierung (OOP) folgt. Das Folgende sind einige Gründe:
1. Abstraktion fördern
Schnittstellendefinitionsvertrag: - Die Schnittstellenspezifikationsklasse sollte Was ist anstelle von wie zu tun . Dieser abstrakte Entkopplungs -Client -Code (Abhängigkeit von der Schnittstelle) und spezifische Implementierung.
Für die Schnittstellenprogrammierung konzentrieren Sie sich eher auf das Definieren von Verhaltensweisen als auf eine spezifische Implementierung.
-
2. Unterstützen Sie das Prinzip der Aufwärtsbewegung (solides Prinzip)
Auf invertierte Prinzipien (DIP):
Module mit hoher Ebene (Geschäftslogik) sollte nicht von Modulen mit niedrigem Level abhängen (Implementierung).
- kann zum Beispiel: Service von der -Krinne abhängen, nicht von einer spezifischen Implementierung, wie z. B. oder
. Dies gewährleistet Flexibilität und verringert die Kopplung. -
PaymentProcessor
PaymentGateway
StripeGateway
3. Unterstützen Sie den Polymorphismus PayPalGateway
Programmierung mit der Gesichtsschnittstelle können mehrere Klassen dieselbe Schnittstelle erreichen, sodass sie leicht ausgetauscht werden können, um sie zu verwenden.
zum Beispiel: und beide erkennen die
-Schinschnittstellen. Wenn Ihr Code von statt einer bestimmten Implementierung abhängt, können Sie zwischen
und - wechseln, ohne den Code zu ändern.
-
ArrayList
LinkedList
4. Verbesserung der Code -Flexibilität und Wiederverwendung List
List
ArrayList
LinkedList
Einfach zu ersetzen: Sie können eine Implementierung durch eine andere Implementierung ersetzen (z. B. von einem Datenbankdienst zu einem anderen Datenbankdienst wechseln), ohne den Clientcode zu ändern.
Wiederholbarkeit:
Der für die Schnittstelle geschriebene Code kann nahtlos mit jeder Klasse funktionieren.
5. Vereinfachen Sie das Testen und Simulation -
Simulation zum Testen: - Die Schnittstelle ermöglicht die Erstellung einer analogen Implementierung für die Einheitstests.
zum Beispiel: Wenn Sie von der Schnittstelle
abhängig sind, können Sie Simulation verwenden, um Tests anstelle der tatsächlichen Datenbank durchzuführen.
6. zeigt die Zukunft
- Eine neue Implementierung hinzufügen ist einfacher, da Sie den vorhandenen Code nicht ändern müssen. Sie müssen nur eine neue Klasse erstellen, die vorhandene Schnittstellen realisiert.
- Beispiel
DatabaseService
Durch die Zulassung der Interface -Programmierung von kann die
-Klasse ohne Änderung mit jeder
-implementierung (, usw.) funktionieren.
Dealing Code (reduzierte enge Kopplung).
<code class="language-java">// 接口
public interface Animal {
void speak();
}
// 实现 1
public class Dog implements Animal {
@Override
public void speak() {
System.out.println("Woof!");
}
}
// 实现 2
public class Cat implements Animal {
@Override
public void speak() {
System.out.println("Meow!");
}
}
// 客户端代码
public class AnimalSound {
public void makeAnimalSpeak(Animal animal) {
animal.speak();
}
}</code>
Nach dem Login kopieren
erleichtert den Code leichter zu erweitern und zu warten.
- vereinfachte Tests.
Animal
AnimalSound
fördern das Prinzip der OOP, wie Abstraktion und Polymorphismus. Animal
Dog
Cat
Durch die Schnittstellenprogrammierung können Sie ein System erstellen, das flexibel, modular und mehr im Einklang mit der Best Practice ist.
Das obige ist der detaillierte Inhalt vonJava-Core-: Programmierung zu einer Schnittstelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!