List 추상화와 반복자 처리 흐름

BatchProcessor가 구체 클래스 대신 MyList<E> 역할에 의존하게 만들어 저장 전략 변경을 조립 시점으로 옮깁니다.

  1. MyList 역할

    MyList<E>는 호출자가 필요한 add, get, size만 선언해 구현 세부를 숨깁니다.

    1단계
  2. 배열 구현

    ArrayMyList와 LinkedMyList는 같은 인덱스·예외 계약을 지켜 행동까지 대체 가능해야 합니다.

    2단계
  3. 연결 구현

    BatchProcessor는 new로 구현을 만들지 않고 생성자 매개변수로 MyList를 받습니다.

    3단계
  4. 생성자 주입

    구현 선택은 main 같은 조립 지점 한 곳에 모아 환경 결정과 업무 로직을 분리합니다.

    4단계

핵심: 어떤 MyList 구현을 주입해도 같은 입력 순서·크기·조회 결과를 반환한다