У меня есть серия классов, каждая из которых имеет разные свойства, и каждый из них имеет идентификатор (для каждого типа не для экземпляра).Как создать объект с определенным типом?
Учитывая следующее:
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(); }
}
При чтении данных У меня только ushort
:
ushort EntityId = BitConverter.ToUInt16(data.GetRange(CURRENT_POSITION + TILE_ENTITY_ID_OFFSET, TILE_ENTITY_ID_LENGTH).ToArray().Reverse().ToArray(), 0);
Как использовать значение EntityId
для создания различных типов объектов на основе его стоимости? Использование операторов if
или switch
не является вариантом, так как будет более 200 типов.
https://en.wikipedia.org/wiki/Factory_method_pattern –
@Matthew с рисунком фабрики , вызывающий абонент знает, что они хотят создать. Как вы можете видеть в примере кода C#, фабрике по-прежнему нужен коммутатор. – CodeCaster
Это один из способов сделать завод. Есть много других. –