Wenn es sich nur um zwei Klassen handelt, so wie ich dich jetzt verstanden habe, kannst du doch ohne großen Bedenken "static" verwenden oder sehe ich das falsch? Dann sind diese zwei Klassen überall verfügbar und die einzelnen States bzw Regetry-Komponenten können sich doch dann via entsprechenden Methoden dort eintragen.
Generell um static oder Singletons zu vermeiden, wäre doch eine Klasse möglich, die als Member zwei Referenzen auf die entsprechenden Objekte der Regestry-Komponente und State-Machine hat. Auf diese Oberklasse speicherst du dann irgendwo eine Referenz und kannst die entsprechenden Klassen verwenden.
Wie gesagt, hängt davon ab was du machen möchtest, man redet nur immer im Allgemeinen davon Singletons und statische Objekte zu umgehen.
Ich kannte das "where" vorher auch nicht. Einfach mal den Compiler-Fehler in der MSDN suchen (ich wollte fast googeln sagen
) und dann werden solche Lösungsvorschläge Einem meistens schon serviert
EDIT: @TrommlBomml
|
Quellcode
|
1
2
3
4
|
public static class SingletonClass
{
//Code
}
|
Wäre das nicht einfacher als dein Vorschlag? Also wenn es eh sichergestellt ist, dass man nur eine Instanz haben möchte? Natürlich ist diese Möglichkeit auch anwendbar
mfg
Union_Freedom