Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
Delphi 2010 Professional
|
AW: Lose Funktionen oder als Funktion in Klasse
30. Jul 2023, 17:52
ein klassisches singleton sorgt dafür dass es nur eine Instanz geben kann.
entweder weil die Klasse einen private ctor hat, oder du verschiedene static readonly References hast.
Du kannst sowas nur sinnvoll mocken, wenn du sie nicht als singletons verwendest, sondern als ctor oder Methoden-Parameter.
Aber wenn du sie so verwendest hast du auch fast keine Nachteile des Singletons mehr.
Sorry für mein c#, keine mich mit modernem Delphi nicht gut genug aus…
Das ist, als ob du einen IEqualityComparer<string> als Parameter nimmst, und den in deinem IOC container statisch als „singleton“ registrierst.
Allerdings kannst du jederzeit das interface mocken um edge cases in einem test zu entdecken.
Dein code geht ja nicht zu der einen statischen Stelle, um sich StringComparer.Ordinal zu holen.
Das gibst du ihm ja nur indirekt per DI oder Parameter.
Robert Giesecke I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
|