List 추상화와 반복자 상태 전이

저장 전략을 조립하는 시작점

1

MyList 역할

state-0

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

2

배열 구현

state-1

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

3

연결 구현

state-2

의존성 주입 경계에서 BatchProcessor는 new로 구현을 만들지 않고 생성자 매개변수로 MyList를 받습니다.

4

생성자 주입

state-3

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

핵심: CLI는 저장소 구현을 main에서 선택하고 명령 처리기는 add와 total만 호출합니다. 테스트 전용 코드를 만들지 않아도 두 구현을 번갈아 실행해 동일한 결과를 관찰할 수 있습니다.