Interface contract

인터페이스는 타입보다 기능 가능 여부를 묻는 계약이다

Interactable처럼 여러 클래스가 같은 기능에 응답해야 할 때 부모 상속보다 인터페이스가 자연스럽다.

질문판정
서로 다른 클래스가 같은 요청을 받아야 하나?인터페이스 후보. Door, Lever, NPC가 같은 Interact를 구현한다.
공통 변수나 기본 로직까지 공유해야 하나?상속 또는 컴포넌트가 더 맞을 수 있다.
호출자가 대상 타입을 몰라도 되나?Message Call로 구체 클래스 의존을 줄인다.
응답이 액터마다 달라야 하나?각 구현 이벤트에서 자기 역할에 맞게 처리한다.
신호해석
좋은 계약BPI_Interactable.Interact처럼 기능 이름이 행동을 설명한다.
나쁜 계약내부 변수나 구현 순서를 호출자에게 드러낸다.