なぜIteratorパターンを使うのか