ArrayList에 저장되어있는 객체와 객체배열에 저장되어있는 객체가 있다고 가정해보자.
ArrayList와 객체배열에 들어있는 객체를 for문을 이용해 가져온다고 가정하였을때 ,
ArrayList의 경우
for(int i=0;i<arrayList.size();i++){ Item item = (Item)arrayList.get(i); }
이런식으로 가져와야 하며
객체배열의 경우
for(int i=0;i<array.length;i++){
Item item = array[i];
}
이런식으로 가져와야할것이다 .
만약, ArrayList와 객체배열로 개발된 소스가 통합될 때, 위 두가지 소스를 번갈아가면서
객체를 가져올것인가 ??
지금까지 본인이 디자인패턴에 대해 공부한 내용 가운데 제일 중요한 것을 꼽자면 아마
"바뀌는 부분을 캡슐화하라"라는 내용을 꼽을 수 있을 것이다.
지금 주어진 문제에서 바뀌는 부분은 분명하게 알 수 있다. 바로 메뉴에서 리턴되는 객체 컬렉션의 형식이 다르기 때문에 반복 작업(for문을 이용한 객체 가져오기)을 하는 방법이 달라지는 부분이다. 이 반복문을 캡슐화하기 위해 어떻게 해야할까 ??