작성
·
81
0
갑자기 궁금해져서 질문드려봅니다.
SkillData, EffectData등이 struct로 구현되어 있는데,
struct 내부에 참조타입이 많은 상황이잖아요?
이럴 경우 struct 내부의 참조타입이 얕은 복사가 일어날 수 있어 에디터의 추가 버튼에서 DeepCopySerializeReference 메소드를 구현해 사용 중인 것 같은데,
SkillData, EffectData등을 class로 구현해 IClonable을 상속받아 Clone 메소드로 추가시키는 것과 어떤 차이가 있을지, struct로 구현을 하신 이유가 있는지 등이 궁금합니다.
답변 1
0
수강해주셔서 감사합니다.
기본적인 이유는 객체 외부에서 Data를 함부로 수정하지 못하게 하기 위함이구요, 부가적으론 Data 객체들은 이름 그대로 별 다른 동작 없이 내부에서만 제어될 Data의 묶음일 뿐이고, 이런 Data 객체들은 struct를 사용하는게 권장되서 그렇습니다.
다만, 이는 제 Coding Style일 뿐 절대적인게 아니기 때문에, 판단 하에 class가 낫다고 생각이 드신다면 당연히 class 객체로 바꾸셔도 상관 없습니다.
감사합니다.