BookShelfのcreateIteratorメソッドを使ってBookShelfIteratorを作成する。 その際、BookShelf自身を渡すことで、BookShelftとBookShelfIteratorは疎結合となっている。