나는 각기 다른 성질을 가진 일련의 클래스를 가지고 있고 각각은 ID를 가지고있다 (인스턴스마다가 아닌 타입마다). 다음 감안할 때유형을 조건부로 정의하여 객체를 만드는 방법은 무엇입니까?
: 데이터를 읽을 때
이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
그건 공장을 짓는 한 가지 방법입니다. 다른 많은 것들이 있습니다. –