"BlockType"열거 형이있는 그래픽 프로그램이 있습니다. 상태에 따라 우드, 스톤, 잔디 등 여러 가지 중 하나 일 수 있습니다."일반"열거 형을 사용하는 것은 나쁜 습관입니까?
원래 각 가능성에 대해 다양한 텍스처 작업이 있었지만 일부 리팩토링 덕분에 열거 형은 정수로만 사용되며 switch 문에 더 이상 필요하지 않습니다. 예 :
BlockType someFoo = someObj.blockType;
Texture usedTexture = textureLookupArray[(int) someFoo];
그러나이 부작용으로 열거 형 문자열은 완전히 중복됩니다. BlockType 5가 "Carpet", "Gravel"또는 "JQuery"로 정의 되었더라도 5 위치에 "Stone"Texture를 넣을 수 있습니다!
내 첫 번째 생각은 BlockType을 "Material1, Material2, etc."을 정의하기 위해 간단히 다시 작성하는 것이었다. 하드 코딩 된 (그리고 잠재적으로 충돌하는!) 값 대신에 실제로 유용한 목적을 제공합니까?
BlockType을 열거 형으로 유지하기 위해 간과 할 수있는 이점이 있습니까? 아니면 혼란을 줄이기 위해 일반 Int로 전환해야합니까?
가 실제 값을 반영하는 경우는 가독성을위한 용도로 사용됩니다 사용하려면, 그렇지 않으면 나는 그것을 유지에 어떤 점을 볼 수 없습니다. – Silvermind
어떻게 마법 번호로 전환하면 혼란이 줄어 듭니까? 귀하의 * 조회 배열 * 귀하의 enum 값으로 키가 사전 및 모든 enum 선량을 유지하십시오! ;) –