我有一个涉及"BlockType"枚举的图形程序。根据不同的状态,它可能是木头、石头、草等多种材料之一。
起初,每种可能性都需要进行纹理操作,但由于进行了一些重构,该枚举现在只用作整数,并且不再需要用于switch语句。也就是说:
BlockType someFoo = someObj.blockType;
Texture usedTexture = textureLookupArray[(int) someFoo];
但是作为其副作用,枚举字符串完全是冗余的!即使块类型5被定义为“地毯”,“砾石”或“JQuery”,我也可以将“Stone”纹理放在位置5上!
我的第一个想法是简单地重写BlockType以定义“Material1、Material2等”,而不是硬编码(可能会发生冲突!)的值,但这实际上有用吗?
是否有我忽略的保持BlockType作为枚举的好处,还是应该将其切换到常规Int以减少混乱?