zurück zum Artikel

Programmieren mit C#: Besser coden mit Fluent-APIs

| Thomas Schröter

In C# lassen sich Fluent-APIs mit Erweiterungsfunktionen sauber implementieren und führen so zu robuster, wartungsfreundlicher und fehlertoleranter Software.

Fluent Interfaces sind ein probates Mittel, um APIs in komplexen Softwaresystemen zu strukturieren. Sie nehmen Programmierer an die Hand, indem sie klare, gut verständlich benannte Methoden anbieten und eine einfache Grammatik fördern. Ein so geschriebener Code ist selbsterklärend, robust, fehlertolerant und erfüllt die Konventionen der Clean-Code-Entwicklung. Zudem ist das Programm klar strukturiert, gut lesbar und wartungsfreundlich.

Viele Interfaces in Sprachen wie C++, C# und Java folgen den Regeln der imperativen Programmierung. An geeigneten Stellen werden Instanzen von Klassen erzeugt, diese Objekte in einer Variablen gespeichert und im Folgenden wird auf die Eigenschaften und Methoden über den Punktoperator zugegriffen. Hier lässt sich zwischen zwei Fällen unterscheiden: Es gibt Methoden, die das Ergebnis einer Operation an den aufrufenden Teil zurückliefern, und Methoden, die nichts zurückgeben (als void deklariert). Die übergebenen Parameter dieser Methoden verändern lediglich den inneren Zustand eines Objekts.

Mehr zu Softwareentwicklung:

Anders verhält es sich mit Fluent APIs. Sie lassen sich als ein Sonderfall der domänenspezifischen Sprachen (Domain-specific Languages, DSL) betrachten und bieten mit ihrem deklarativen Ansatz gegenüber der imperativen Entwicklung etliche Vorteile: Das Verwenden einer redundanten Instanzvariablen entfällt, die Kapselung (Paradigma des Information Hiding) wird verbessert und der Quellcode eines Programms transformiert sich insgesamt zusehends in Richtung deklarative Programmierung.


URL dieses Artikels:
https://www.heise.de/-7122129

Links in diesem Artikel:
[1] https://www.heise.de/hintergrund/Agile-Vorgehensmodelle-Skalierungsframeworks-im-Vergleich-8992374.html
[2] https://www.heise.de/tests/Teamscale-im-Test-Softwarequalitaet-analysieren-ueberwachsen-und-verbessern-7531627.html
[3] https://www.heise.de/hintergrund/Moderne-Organisationsformen-Team-Topologies-in-der-Softwareentwicklung-7483833.html
[4] https://www.heise.de/hintergrund/Programmieren-Wie-man-Linker-in-der-Softwareentwicklung-richtig-nutzt-7364925.html
[5] https://www.heise.de/ratgeber/Softwareentwicklung-Wie-Sie-mit-dem-richtigen-Linker-Zeit-sparen-7462529.html
[6] https://www.heise.de/hintergrund/Kurz-erklaert-Internal-Developer-Platforms-7461508.html
[7] https://www.heise.de/hintergrund/Authentifizierung-Foederierter-Vertrauensanker-fuer-Istio-7460289.html
[8] https://www.heise.de/hintergrund/Softwareentwicklung-Spezifikation-im-agilen-Kontext-7457025.html
[9] https://www.heise.de/tests/NET-7-0-mit-Ahead-of-Time-Compiler-fuer-Konsolenanwendungen-im-Test-7394041.html
[10] https://www.heise.de/hintergrund/Programmieren-Wie-man-Linker-in-der-Softwareentwicklung-richtig-nutzt-7364925.html
[11] https://www.heise.de/ratgeber/Cloud-nativ-entwickeln-mit-Java-Containerisierung-mit-Quarkus-7314327.html
[12] https://www.heise.de/tests/Softwareentwicklung-NET-MAUI-im-Test-7186782.html
[13] https://www.heise.de/tests/Microsofts-NET-6-kommt-mit-neuen-Datentypen-und-Hot-Reloading-6301558.html
[14] https://www.heise.de/hintergrund/Agile-Softwareentwicklung-Die-Entwicklung-des-agilen-Manifests-im-Zeitraffer-5053565.html
[15] https://www.heise.de/ratgeber/Agile-Softwareentwicklung-Die-passende-agile-Methode-finden-5054689.html
[16] https://www.heise.de/ratgeber/Agile-Softwareentwicklung-Auf-welche-Arten-Agilitaet-schiefgehen-kann-5054837.html
[17] https://www.heise.de/hintergrund/Agilitaet-Stimmung-mithilfe-von-Machine-Learning-analysieren-5030380.html