새 프로젝트하면서 인터페이스를 좀 활용해보자!
하면서 구조를 짜서 코딩하고 있는데
예를들어 특성을 만듬 ->
특성이
대충
패시브 - 공격력증가
조건패시브 - 타격당 데미지증가
이런식이면
특성을 가질 수 있는 entity가 가지는 인터페이스로
IHoldingTrait
프로퍼티 list<ITrait> traits
void AddTrait
void RemoveTrait
ITrait
프로퍼티 so traitData
void ApplyTrait // 패시브 - 공격력증가
void UnapplyTrait //특성 무효화
이걸 상속받는
IOnAttackTrait
void ApplyAttackTrait // 패시브 - 타격당 데미지증가
해서
특성이 적용될 트리거마다
if문으로 trait is IOnAttackTrait attackTrait
attackTrait.ApplyAttackTrait
이런식으로 돌려버리는 식으로
막 인터페이스 마구 만들고 마구 써버리는데
경험이 없으니
이 인터페이스를 어디까지 만들어야 하나?의 늪에 빠져버린 것 같아
근데 아직 경험이 없으니
백문이 불여일견이라고
일단 써보고 머리 박아봐야 할거같아서 써보는중ㅋㅋ....
- dc official App
머리박치기 해서 어디까지가 오버엔지니어링인지 생각해보는 것도 좋음. 간간히 코드 리팩토링 한번씩 돌리자
난 아직도 IDamageable 하나만 덩그러니 있음.. - dc App
뉴비일때는 잘 모르겠으면 일단 인터페이스 쓰지말고 나중에 리팩토링하면서 만들어주는게 좋음