Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Tutorials und Kurse (https://www.delphipraxis.net/36-tutorials-und-kurse/)
-   -   Mit Helper-Klassen ein fluent interface bzw. method chaining erstellen (https://www.delphipraxis.net/202909-mit-helper-klassen-ein-fluent-interface-bzw-method-chaining-erstellen.html)

generic 22. Dez 2019 16:44

Mit Helper-Klassen ein fluent interface bzw. method chaining erstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin DP,

ich hab ein weiteres Video online.

In meiner Domäne möchte ich ein kompliziertes Kunde-Objekt erzeugen. Dazu nutze ich in dem Video ein Fluent interface bzw. Method chaining.

Damit ich die Logik nicht in meinen Transport-Objekten halten muss, verwende ich zusätzlich eine Helper-Klasse. Mit diesen können beliebige Klassen erweitert werden, ohne dessen Quelltext zu verändern.

Punkte von dem Video sind:
- was ist method-chaining / fluent
- es gibt Helper-Klassen wo man was erweitern kann, was ggf. nicht vererbt werden kann oder soll

Das Video befindet sich hier:
https://youtu.be/XXrFtNa1UIE

Quelltext:
Anhang 51940

stahli 22. Dez 2019 18:39

AW: Mit Helper-Klassen ein fluent interface bzw. method chaining erstellen
 
Danke!

Solche Videos finde ich immer interessant (auch wenn ich grundsätzlich kein Fan von fluent interfaces bin).

generic 23. Dez 2019 09:51

AW: Mit Helper-Klassen ein fluent interface bzw. method chaining erstellen
 
Ich bin da zwiespaltig in der Meinung.

Schließlich muss man das Interface implementieren, was Zusatz Aufwand ist. Entgegen steht halt die gute Leserlichkeit.

Aktuell ist das aber ein Trend in viele Projekten und Libs. Gerade im C# Bereich findet man das immer mehr.
In den Teams wo ich arbeite werden meistens Mocks damit gebaut.
Für API setzen wir das eher selten ein.

Rollo62 23. Dez 2019 13:00

AW: Mit Helper-Klassen ein fluent interface bzw. method chaining erstellen
 
Danke für das Video.
Also ich setze das sehr gerne ein, kann mir guter Syntax Einiges verbessern.
Das Problem sind meist die guten Bezeichner zu finden.
Ich arbeite auch gern mit _Begin, _End Strukturen, um Teilbereiche der Definitionen sauber zu kapseln.
Vorteil ist auch das AutoComplete damit super klarkommt, und weniger Fehler entstehen.

Stevie 23. Dez 2019 19:50

AW: Mit Helper-Klassen ein fluent interface bzw. method chaining erstellen
 
Ein großer Vorteil von Fluent API wurde überhaupt nicht erwähnt, weswegen sie auch gern für DSL genutzt wird:
die Möglichkeit, eine Art Grammatik zu definieren (z.B. wir das bei den meisten Mocking Bibliotheken gemacht, die Fluent API nutzen).

Man liefert in solchen Fällen dann nicht immer denselben Typen zurück, sondern spezielle Fluent API Typen, die immer nur die richtigen Methoden anbieten.

Persönlich find ich ja, dass das Builder Pattern mit Fluent API statt Eigenschaften setzen ein bisschen nach Java stinkt ;)
Das hier gezeigte liefert leider auch keinen Mehrwert gegenüber dem herkömmlichen Weg, die Eigenschaften zu setzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz