The Iterator Pattern