슬더스같은 게임 만드는중임


캐릭터가 여러개있는데, 모든 캐릭터들이 공유하는 템이 있고, 각 캐릭터 전용 템이 있음


특정 아이템이 공용인지 아니면 특정 캐릭터 전용인지 구분할 데이터를 설정해야 하는데


아래 두가지 방법중 뭐가 더 나음?



======================


1. 공용 여부를 bool로 설정, 전용 템은 enum으로 구분

enum HeroClass { Fighter, Archer, Mage }

class ItemData{

...

  bool isCommon;

  HeroClass heroClass;

...

}



2. enum type에 공용 여부를 설정한다.

enum HeroClass { Fighter, Archer, Mage, Common }

class ItemData{

...

 HeroClass heroClass;

...

}


===================


HeroClass의 정체성을 생각하면 1번 방식이 나을것 같은데,


활용도는 2번이 더 좋은것 같음


가령 캐릭터에 따라 아이템 설명 UI의 디자인을 다르게 설정하고 싶을때 2번은 그냥 switch 한방으로 끝나는데, 1번은 enum 타입도 조사하면서 bool 타입도 조사해야하는등 괜히 번거로워지는 경우가 많더라고


어떻게 하는게 좋을까?