상속 시 부모 클래스의 `bind` 함수 오버라이딩 범위가 넓어 버그 발생 가능성이 높음
`super` 호출 누락, 오버라이딩 제약 조건 미준수로 인해 예상치 못한 동작 발생
`updateMessageList` 추상 메서드 분리를 통해 자식 클래스의 수정 범위를 제한하여 코드 안정성 확보
부모 클래스의 `bind` 함수가 헤더, 푸터, 메시지 목록 표시를 모두 담당하여 오버라이딩 범위가 과도하게 넓어짐. 구체적으로, 자식 클래스에서 `super.bind` 호출 누락 시 헤더/푸터 미갱신 버그가 발생할 수 있다. 따라서, 책임 분리를 통해 코드의 안정성을 높여야 한다.
문제 해결을 위해 `bind` 함수를 `open`에서 제거하고, `updateMessageList` 추상 메서드를 도입한다. `updateMessageList`를 통해 자식 클래스는 메시지 목록 표시 로직만 구현하도록 제한한다. 결과적으로, 코드 변경 영향 범위 감소 및 유지보수성 향상을 기대할 수 있다.
C++의 `private virtual` 함수는 부모 클래스 내에서만 호출 가능하며, 자식 클래스에서 오버라이딩 가능하다. `private virtual`을 사용하면 전체 흐름을 변경하지 않고 자식 클래스에서 특정 로직만 변경할 수 있다. 따라서, 상속 구조 설계 시 유연성과 안전성을 동시에 확보할 수 있다.