Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Builder für Abfrage von Auftragslisten (zu 800990c) #129

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

ruderphilipp
Copy link
Contributor

@ruderphilipp ruderphilipp commented Feb 7, 2022

Durch das Builder-Pattern können die technischen Details der fachlichen Businesslogik versteckt/ gekapselt werden. So wird ein einheitliches Abstraktionsniveau ("Flughöhe") innerhalb der Methode erreicht.

In Commit 800990c wurden in drei Klassen die Methode getList um eine Ausgabe auf der Statusleiste ergänzt. Hierbei fällt auf, dass diese drei Methoden zu 95% identisch sind (nur der Textfilter ist zusätzlich in AbstractSepaSammelTransferList).

Diese Redundanz kann durch den Einsatz des Builders deutlich reduziert werden. Die Zentralisierung senkt die Fehleranfälligkeit (falls eine Implementierung bei Anpassungen vergessen wird) und die Kapselung erhöht die Verständlichkeit (da andere Abstraktionsebene).

Durch das Builder-Pattern können die technischen Details der fachlichen
Businesslogik versteckt/ gekapselt werden. So wird ein einheitliches
Abstraktionsniveau ("Flughöhe") innerhalb der Methode erreicht.

Dieser Commit ergänzt die notwendigen Klassen für die im Commit
800990c veränderten Methodenimplementierungen von `getList`, ohne die
eigentlichen veränderten Codepassagen anzupassen.
In Commit 800990c wurden in drei Klassen die Methode `getList` um eine
Ausgabe auf der Statusleiste ergänzt. Hierbei fällt auf, dass diese
drei Methoden zu 95% identisch sind (nur der Textfilter fehlt in
`AbstractTransferList`).

Diese Redundanz kann durch den Einsatz des Builders deutlich reduziert
werden. Dies senkt die Fehleranfälligkeit (falls eine Implementierung
bei Anpassungen vergessen wird) und erhöht die Verständlichkeit (da
andere Abstraktionsebene).
@willuhn
Copy link
Owner

willuhn commented Feb 7, 2022

AbstractSammelTransferList existiert nur noch aus historischen Gründen, damit man sich im Archiv im Menü unter "Hibiscus->Archiv" noch die alten Aufträge aus der Vor-SEPA-Zeit anschauen kann. Der Code wir irgendwann ohnehin gelöscht und muss nicht mehr refactored werden. Damit bleiben nur noch AbstractTransferList und AbstractSepaSammelTransferList. Dafür tut's auch eine statische Methode in einer Util-Klasse a la KontoUtil, UmsatzUtil. Mit dem Builder werden aus 50 gesparten Zeilen 350 neue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants