Matti Mäkitalo: Klasse aus Datenbank füllen, danach die Klasse verarbeiten

Beitrag lesen

Hallo,

es ist keine gute Idee, wenn ein Konstruktor das Objekt aus der Datenbank liest.

Wieso nicht? Begründung?

Neben dem genannten S aus SOLID sorgt es vor allem dafür, dass der Code ziemlich schwer testbar ist. Bleiben wir beim Beispiel oben: a) es gibt eine implizite Abhängigkeit der Klasse proofs zur Klasse Db, die von außen (Signatur des Konstruktors) nicht erkennbar ist. b) es ist nicht möglich, diese Abhängigkeit in irgendeiner Form auszutauschen. In Produktiv-Code bedeutet dies, dass man verhindert, dass die Klasse mit einer anderen DB benutzt wird. Im Test-Code bedeutet es, dass man mindestens eine echte DB-Instanz initialisieren muss um die Klasse zu testen.

Ich empfehle dir hierzu diesen Artikel zu Clean Code und wie man testbaren Code schreibt.

Viele Grüße Matti