Ich habe eine Reihe von Klassen mit jeweils unterschiedlichen Eigenschaften und jeder von ihnen mit einer ID (pro Typ nicht pro Instanz).Wie erstelle ich ein Objekt mit seinem definierten Typ bedingt?
Bei der folgenden:
public class TestEntity : EntityBase {
public override ushort ID { get; } = 1;
public override void something() { do_something(); }
}
public class OtherEntity : EntityBase {
public override ushort ID { get; } = 2;
public override void something() { something_else(); }
}
Beim Lesen von Daten Ich habe nur ein ushort
:
ushort EntityId = BitConverter.ToUInt16(data.GetRange(CURRENT_POSITION + TILE_ENTITY_ID_OFFSET, TILE_ENTITY_ID_LENGTH).ToArray().Reverse().ToArray(), 0);
Wie verwende ich den Wert von EntityId
verschiedene Arten von Objekten auf dem Wert basiert erstellen? Die Verwendung von if
oder switch
Anweisungen ist keine Option, da es mehr als 200 Typen geben wird.
https://en.wikipedia.org/wiki/Factory_method_pattern –
@Matthew mit den Fabrik-Mustern , der Anrufer weiß, was er instanziiert werden soll. Wie Sie in dem C# -Codebeispiel sehen können, benötigt die Fabrik noch einen Schalter. – CodeCaster
Das ist eine Möglichkeit, eine Fabrik zu machen. Es gibt viele andere. –