interface extends

인터페이스 확장 책임 범위

확장된 인터페이스는 부모 계약을 포함하고, 구현 클래스는 누적된 모든 멤버를 만족해야 합니다.

base

Disposable

  • dispose(): void 자원을 해제하는 최소 계약
extends

RunnableProcess

  • run(): void 실행 동작을 추가
  • isRunning: boolean 실행 상태를 추가
  • dispose(): void 부모 계약을 그대로 포함
implements

BackgroundTask

  • run 작업 시작 구현
  • isRunning 상태 저장 구현
  • dispose 정리 로직 구현
좁게 받기

해제만 필요하면 매개변수 타입을 Disposable로 둡니다.

넓게 구현

실행 가능한 작업이라면 RunnableProcess 전체를 구현합니다.

교체 가능성

같은 확장 계약을 만족하면 다른 구현체로 바꿀 수 있습니다.