http://jmnote.com/wiki/Iterator_%ED%8C%A8%ED%84%B4
이터레이터 패턴은 컬랙션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어가있는 모든 항목에 접근할 수 있게 해주는 방법을 제공해줍니다.
클래스를 바꾸는 이유는 한가지 뿐이어야 한다.