Heim > Java > javaLernprogramm > Artikel Bevorzugen Sie die Verwendung von Standard-Funktionsschnittstellen

Artikel Bevorzugen Sie die Verwendung von Standard-Funktionsschnittstellen

WBOY
Freigeben: 2024-07-25 10:47:31
Original
645 Leute haben es durchsucht

Item  Prefira o uso das interfaces funcionais padrão

Entwicklung von APIs mit Lambdas: Mit der Einführung von Lambdas in Java haben sich die Praktiken zum Schreiben von APIs geändert, z. B. die Vermeidung des Template-Methodenmusters zugunsten von Static Fabriken oder Konstrukteure, die Funktionsobjekte akzeptieren.

LinkedHashMap-Beispiel:Anstatt die Methode „removeEldestEntry“ für die Cache-Steuerung zu überschreiben, wäre es moderner, eine statische Factory oder einen Konstruktor mit einem Funktionsobjekt zu verwenden und die Funktionsschnittstelle BiPredicate zu verwenden.

Verwendung von Standard-Funktionsschnittstellen: Das Paket java.util.function bietet eine breite Sammlung von Standard-Funktionsschnittstellen, die benutzerdefinierten Schnittstellen vorgezogen werden sollten, um das Verständnis der API zu erleichtern und die Interoperabilität zu verbessern.

Hauptfunktionale Schnittstellen:

  • UnaryOperator: Wendet eine Funktion vom Typ T auf T an.
  • BinaryOperator: Wendet eine Zwei-Argument-Funktion vom Typ T auf T an.
  • Prädikat: Testet ein Argument und gibt einen booleschen Wert zurück.
  • Funktion: Wendet eine Funktion vom Typ T auf R an.
  • Lieferant: Stellt einen Wert vom Typ T ohne Argumente bereit.
  • Consumer: Konsumiert ein Argument vom Typ T ohne Rückgabe.

Funktionale Schnittstellen für primitive Typen: Es gibt Varianten der sechs grundlegenden Schnittstellen für primitive Typen (int, long, double), wie z. B. IntPredicate und LongBinaryOperator.

Wann benutzerdefinierte funktionale Schnittstellen erstellt werden sollten:
Wenn keine Standardschnittstelle die Anforderungen erfüllt.
Wenn ein aussagekräftiger Name oder ein starker Vertrag benötigt wird.
Wenn die Schnittstelle von benutzerdefinierten Standardmethoden profitieren kann.
Verwendung der @FunctionalInterface-Annotation: Zeigt an, dass die Schnittstelle für die Unterstützung von Lambdas entwickelt wurde, wodurch sichergestellt wird, dass sie nur über eine abstrakte Methode verfügt.

Mehrdeutige Überladungen vermeiden: Erstellen Sie keine Methoden mit vielen Überladungen, die unterschiedliche Funktionsschnittstellen an derselben Argumentposition akzeptieren, um Mehrdeutigkeiten zu vermeiden.

**Fazit: **Lambdas und funktionale Schnittstellen müssen beim Design moderner APIs berücksichtigt werden. Im Allgemeinen ist es vorzuziehen, die Standardschnittstellen java.util.function zu verwenden, außer in bestimmten Fällen, in denen benutzerdefinierte Schnittstellen erforderlich sind.

Das obige ist der detaillierte Inhalt vonArtikel Bevorzugen Sie die Verwendung von Standard-Funktionsschnittstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage