한 연산이 네 계층을 관통한다
길이 3인 리스트 [3, 5, 8]에서 한 연산은 클라이언트 코드의 호출부터 배열 구현까지 같은 경로를 지난다. 내부 필드는 인터페이스 밖에서 보이지 않는다.
리스트 연산
외부 결과만 사용→
호출 경계→
→
내부 배열 a와 원소 수 n은 경계 안에 남는다.
읽기와 삽입의 인덱스 경계는 다르다
길이 3인 List에서 조회와 삽입에 허용되는 인덱스 범위는 서로 다르다.
012
0 ≤ i < n
0123
0 ≤ i ≤ n
클라이언트 코드는 공개된 연산만으로 일을 한다
swap_first_two(seq)는 get과 set만 호출해 앞의 두 값을 바꾼다.