Kai Spichale

API-Design


Скачать книгу

5.7.2Null-Objekte

       5.7.3Verwendung der Klasse java.util.Optional

       5.7.4Fazit

       5.8Exceptions

       5.8.1Ausnahmesituationen

       5.8.2Checked Exception versus Unchecked Exception

       5.8.3Passende Abstraktionen

       5.8.4Dokumentation von Exceptions

       5.8.5Vermeidung von Exceptions

       5.8.6Fazit

       5.9Objekterzeugung

       5.9.1Erzeugungsmuster der GoF

       5.9.2Statische Factory-Methode

       5.9.3Builder mit Fluent Interface

       5.9.4Praktische Anwendung der Erzeugungsmuster

       5.9.5Fazit

       5.10Vererbung

       5.10.1Ansätze zum Einsatz von Vererbung

       5.10.2Stolperfallen bei Vererbung

       5.10.3Bedeutung für API-Design

       5.10.4Fazit

       5.11Interfaces

       5.11.1Typen nachrüsten

       5.11.2Unterstützung für nicht triviale Interfaces

       5.11.3Markierungsschnittstellen

       5.11.4Funktionale Interfaces

       5.11.5Fazit

       5.12Zusammenfassung

       6Fortgeschrittene Techniken für Java-APIs

       6.1Fluent Interface

       6.1.1DSL-Grammatik

       6.1.2Schachteln versus Verketten

       6.1.3Fluent Interface von jOOQ

       6.1.4Ist der Aufwand gerechtfertigt?

       6.1.5Fazit

       6.2Template-Methoden

       6.2.1API versus SPI

       6.2.2Erweiterbare Parameter

       6.2.3Fazit

       6.3Callbacks

       6.3.1Synchrone Callbacks

       6.3.2Asynchrone Callbacks

       6.3.3Fazit

       6.4Annotationen

       6.4.1Auswertung zum Kompilierzeitpunkt

       6.4.2Auswertung zur Laufzeit

       6.4.3Fazit

       6.5Wrapper-Interfaces

       6.5.1Proxy

       6.5.2Adapter

       6.5.3Fassade

       6.5.4Fazit

       6.6Immutability

       6.6.1Wiederverwendung

       6.6.2Thread-Sicherheit

       6.6.3Einfachheit

       6.6.4Umsetzung

       6.6.5Automatische Überprüfung mit dem Mutability Detector

       6.6.6Codegenerierung mit Immutables

       6.6.7Fazit