MyList 역할
MyList<E>는 호출자가 필요한 add, get, size만 선언해 구현 세부를 숨깁니다.
1단계BatchProcessor가 구체 클래스 대신 MyList<E> 역할에 의존하게 만들어 저장 전략 변경을 조립 시점으로 옮깁니다.
MyList<E>는 호출자가 필요한 add, get, size만 선언해 구현 세부를 숨깁니다.
1단계ArrayMyList와 LinkedMyList는 같은 인덱스·예외 계약을 지켜 행동까지 대체 가능해야 합니다.
2단계BatchProcessor는 new로 구현을 만들지 않고 생성자 매개변수로 MyList를 받습니다.
3단계구현 선택은 main 같은 조립 지점 한 곳에 모아 환경 결정과 업무 로직을 분리합니다.
4단계핵심: 어떤 MyList 구현을 주입해도 같은 입력 순서·크기·조회 결과를 반환한다