Moin!
Also ich verstehe das so, dass es versch. Werkzeuge als Objektinstanzen geben kann, die mit einem Service arbeiten sollen. Damit sie diesen überhaupt kennenlernen, wird dem Konstuktor jeder neuen Werkzeuginstanz eine Referenz auf den einzigen Service (ein Singleton) mitgegeben. Der Service kann ruhig static deklariert sein. Das macht ihn aber noch nicht überall bekannt.
Aber das erspart einem das blöde ge-referenzere:
KlasseBla.machdas(); anstatt instanzvonKlasseBla.machDas();
Wenn du statische Aufrufe in deinem Code verteilst, dann legst du dich damit ziemlich intensiv fest, welchen Code du an dieser Stelle verwenden willst.
Nur mal so als Beispiel: Wenn deine statische Klasse DB-Aufrufe macht, bist du damit auf die konkrete Datenbank festgelegt und kannst das nur schwer wieder ändern, weil du dann an allen Stellen die statischen Aufrufe auf eine andere Klasse umbiegen musst.
Wenn du eine Instanz in die andere Klasse gibst, dann hast du eine zentrale Stelle, die dir diese Klasse erzeugt, und bist an dieser zentralen Stelle flexibel, evtl. eine andere Klasse mit derselben Interface-Implementierung einzufügen.
Statische Klassenaufrufe sind nicht der beste Programmierstil.
- Sven Rautenberg