리스트란 무엇인가.
프로그래밍에서의 리스트는 하나의 자료구조이며, 리스트 자료구조의 특징이 순서가 있다라고 간단하게 설명할 수 있습니다.
View 는 보여지다.
즉 ListView 는 순서 있게 보여지는 것이라고 정의하고 시작 합니다.
java 코드에서의 List 아직 그래픽 처리가 되지않는 단지 java sourceCode 입니다.
따라서 안드로이드의 화면을 구성하는 Activity로 보여질 수 없습니다.
보여주기 위해서는 xml을 가공하는 일련의 과정인 인플레이션을 합니다.
ListView에서는 이 인플레이션을 "어댑터" 를 사용해서 작업합니다.
여기에서 어댑터는 list(java) - adapter - view(xml) 이렇듯
연결해주는 역할을 합니다.
위 코드에서 살펴본다면
어댑터객체의 생성자 인수로 context 와 리스트를 넣어줍니다.
getView 메서드에서 인플레이트를 진행 하게 됩니다.
하지만 매번 리스트를 접근할 때마다 인플레이트와 xml-java를 연결해주는 findByViewId 메서드가 발생한다면 성능저하가 우려됩니다.
그래서 뷰홀더패턴이 사용됩니다.
viewHolder에 리스트하나의 아이템 요소들을 뷰홀더객체에 담아서
첫 생성시에만 인플레이트와 findViewById 를 해줌으로써, 메모리 최적화에 더 가까워졌다고 말할 수 있습니다.