Ich arbeite an einem persönlichen Projekt und ich bin auf ein Problem gestoßen.Statische abstrakte Objekte mit virtuellen Methoden
Ich habe Objekt ein paar Objekte, die die gleichen Eigenschaften, Methoden, etc. haben. Die einzigen Dinge, die sich unterscheiden, sind ihre Namen, Werte von Eigenschaften und die Implementierung der Methoden. Sie benötigen auch eine gemeinsame Standardimplementierung von Methoden. Eine Schnittstelle kommt also nicht in Frage.
Also habe ich eine Basisklasse mit den Eigenschaften und "Standard" -Methoden erstellt. Aber diese Basisklasse muss abstrakt sein. Die Methoden sind virtuell, sodass sie überschrieben werden können.
Der Grund, warum ich sie statisch brauche, ist, dass Objekte Eigenschaften anderer Objekte sind.
So sind zum Beispiel die oben genannten Objekte (der Einfachheit halber) objX, objY, objZ. Sie sind von ihrer Basis abgeleitet, objW.
objContainer ist ein Objekt ohne Bezug, aber es hat eine Eigenschaft vom Typ objW, die eine Instanz von objX, objY, objZ ist.
objX, objY und objZ werden nie ändern. Ihre Eigenschaften werden alle nur gelesen. Daher haben mehrere Objekte der Instanz objContainer objX, objY oder objZ.
public class objContainer1
{
objW processor = new objY;
}
public class objContainer2
{
objW processor = new objY;
}
Wie gehe ich dabei vor? Ich wollte sie statisch halten, damit ich nicht mehrere Instanzen der gleichen Objekte habe, wenn sie alle exakt gleich sind.
Verwende ich ein Singleton? Fabrikmuster?
Ich bin verloren in welche Richtung zu gehen (wenn überhaupt). Vielleicht überschätze ich es und es gibt eine sehr einfache Lösung/
Danke. Zusatzfrage. Wenn von allen Objekten Singletons mit gemeinsamem Code sein werden, gibt es eine Möglichkeit für sie, alle Singleton-Muster von dem Elternteil zu erben, während sie selbst immer noch einzelne Singletons selbst sind? Ich möchte im Grunde, dass die abgeleiteten Klassen das Singleton-Muster implementiert haben, ohne es für jede Klasse wiederholen zu müssen. – ilyketurdles