58


본인쟝 일주일 전 인터페이스를 모두 이해한 사람으로써 알려드림


범위 공격 스킬이 있다고 가정했을 때

이 스킬로 잡몹이랑 벽이랑 부술 수 있는 오브젝트에게 피해를 줬음. 


이 때 얘네들이 갖고 있는 피해 관련 함수(TakeDamage, HandleDamage, PlayDestroyAnim 등)를 찾아서 일일히 호출해야함

그냥 일반몬스터, 엘리트몬스터, 보스몬스터였다면 

상속 구조를 통해 피해 관련된 함수를 호출하면 되겠지만 


잡몹, 벽, 부술 수 있는 오브젝트는 서로 너무 다른 성격의 오브젝트이기에 상속은 부적합함.

그러나 이 오브젝트들이 IDamageable 인터페이스를 구현한 상태라면

인터페이스가 구현한 공통 함수를 호출함으로써 한번에 퉁칠 수 있음. 


내부 구현은 각각 다르지만 모두 TakeDamage 함수를 갖고 있다는 걸 서로 알고 있으니 

여러번 일할 필요 없어짐.


마찬가지로 상호작용이 필요한 문이나 아이템, NPC 등 

세이브할 때 현재 상황 퍼가요 필요한 애들 등

무기, 아이템, 스킬, 몬스터 데이터를 하나로 관리할 때 등


성격이 다른 애들을 공통적으로 묶어서 처리해야하고 서로 각각 다른 행동을 해야할 때

쓰면 좋은 거 같음


내 설명이 틀렸다면 아래 인붕이들이 고쳐줄거야 이만