moin,
da der Code den ich Refactorieren musste, extrem unsauber war
Das ist Dein Ansatz auch. Genauer gesagt, Dein Ansatz ist viel zu kompliziert, Du erstickst Dich selbst in einer Klassenflut.
wenn man einfache klassengebundene SELECT-Befehle machen will ja, gebe ich dir Recht. Wenn du aber eine sehr komplexe SQL Abfrage hast, mit Subselects usw. braucht man eine Struktur von Klassen die dann verschachtelt den SQL string stück für stück zusammen bauen, dann auf Type, Sequenz, Wohlgeformtheit, usw. validieren und ab dafür. Je weniger Fehler mir passieren können desto besser, und wenn fehler passieren, meckert mein SQL Builder System per [Type]Exception was ich doch falsch gemacht haben könnte.
Natürlich kann man Daten per Instanz einer fremden Klasse in seinen eignen Konstruktor hineinreichen, aber es geht auch anders. D.h., die Daten die Dein Konstruktor benötigt müssen ja keine Instanzen fremder Klassen sein.
Neben bei: Ich hasse Array's flut. Meiner Erfahrung nach sind Array's sehr unspezifisch und ich mag sie garnicht! Man muss wissen, welche struktur das Array hat, welchen Datentyp ein Feld hat, obs Key-Value-Paare sind, usw. Mit einer ConstructorInjection hat man das Problem nicht.
lgmb