A is a B
스포츠카는 자동차처럼 부모-자식 관계가 자연스러울 때 적합합니다. 공통 변수와 컴포넌트까지 함께 물려받습니다.
문, 레버, 버튼처럼 서로 다른 액터가 같은 메시지에 반응해야 한다면 공통 부모로 묶기보다 BPI 계약을 구현하게 만듭니다.
스포츠카는 자동차처럼 부모-자식 관계가 자연스러울 때 적합합니다. 공통 변수와 컴포넌트까지 함께 물려받습니다.
문, 레버, 버튼이 모두 Interact를 할 수 있는 것처럼 기능 계약만 공유할 때 적합합니다.
서로 다른 클래스들이 같은 입력이나 메시지에 반응해야 합니다.
플레이어는 Target이 문인지 버튼인지 캐스팅하지 않고 메시지만 보냅니다.
기존 플레이어 로직을 고치지 않고 새 액터가 BPI만 구현하면 됩니다.