AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Mit Helper-Klassen ein fluent interface bzw. method chaining erstellen

Mit Helper-Klassen ein fluent interface bzw. method chaining erstellen

Ein Tutorial von generic · begonnen am 22. Dez 2019 · letzter Beitrag vom 23. Dez 2019
Antwort Antwort
generic
Registriert seit: 24. Mär 2004
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:
fluent.7z

Geändert von generic (23. Dez 2019 um 10:51 Uhr)
 
Benutzerbild von stahli
stahli

 
Delphi 10.4 Sydney
 
#2
  Alt 22. Dez 2019, 19:39
Danke!

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

 
Delphi XE5 Professional
 
#3
  Alt 23. Dez 2019, 10:51
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.
  Mit Zitat antworten Zitat
Rollo62

 
Delphi 10.4 Sydney
 
#4
  Alt 23. Dez 2019, 14:00
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.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie
Online

 
Delphi 10.1 Berlin Enterprise
 
#5
  Alt 23. Dez 2019, 20:50
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.
Stefan
  Mit Zitat antworten Zitat
Themen-Optionen Tutorial durchsuchen
Tutorial durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf