mrjerk: OOP: Warum Services nicht statisch?

Beitrag lesen

Hallo,

Warum werden die Services dann nicht gleich als static deklariert? Dann würde man sich das unnötige Übergeben sparen, oder?

Wenn Du den Service als statisch deklarierst, kannst Du ihn ja nicht instanzieren.
Dies wiederrum ist lästig, weil Du Services meistens irgendwie parametrisieren willst. Dann zwar nur EINMAL, aber leider ist dieses EINMAL oft zur Laufzeit, sprich, zur Implementierungszeit stehen die Parameter noch nicht fest.

Denk Dir einen Service, der den Datenbank-Zugriff regelt. Dann möchtest Du ja evtl., dass dieser Service beim Initialisieren irgendwelche Werte mitbekommt (z.b. den Datenbank-Host o.ä.).

Es kann auch sein, dass dieser Service widerrum einen anderen Service nutzt, aber erst zur Laufzeit feststeht, welchen er benutzen soll.

Alles das spricht gegen eine Implementierung als "Static" Klasse.

Was hingegen in manchen Fällen Sinn machen kann, ist, den Service als Singleton zu realisieren - dann kannst Du den Service trotzdem bei der ersten Instanzierung parametrisieren, stellst aber sicher, dass Du immer dieselbe Instanz des Services zurück bekommst (und nicht versehentlich zwei Services, die eigentlich das gleiche tun, in Deinem System herumsausen).

Hoffe das hilft Dir weiter.

Viele Grüße,
Jörg