はじめに
@nqounetです。
このページは、シリーズ「本棚アプリで覚える集合体の巡回」の目次ページです。
シリーズ概要
このシリーズでは、蔵書を管理する本棚アプリを題材に、オブジェクト指向プログラミングの実践的なテクニックを学びます。最終的には「Iteratorパターン」というデザインパターンを理解し、実装できるようになります。
対象読者
- Perl入学式を卒業したばかりの方
- 「Mooで覚えるオブジェクト指向プログラミング」シリーズを読了した方
- クラスの作り方は分かるが、複数のオブジェクトを効率的に扱う方法を学びたい方
技術スタック
- Perl v5.36以降(signatures対応)
- Moo(CPANモジュール)
記事一覧
第1回: Mooで本棚アプリを作ろう - Perlで蔵書管理の第一歩
BookクラスとBookShelfクラスを作成し、集合体(Aggregate)の基本を学びます。
第2回: すべての本を表示したい - forループとカプセル化の壁
forループで全ての本を表示する機能を実装し、カプセル化の問題に直面します。
第3回: 巡回の責任を分離する - Moo::Roleで専用クラスを作る
Moo::Roleを使ってBookIteratorRoleを定義し、BookShelfIteratorクラスを作成します。
第4回: 走査機能を取り出す - iterator()メソッドの実装
BookShelfにiterator()メソッドを追加し、利用者が走査クラスを意識せずに済むようにします。
第5回: Iteratorパターンという知恵 - 先人の経験をPerlで活かす
完成した本棚アプリを振り返り、作ったものがIteratorパターンであることを解説します。逆順巡回の実装例も紹介します。
このシリーズで学べること
- 集合体(Aggregate)の概念と実装
- カプセル化の重要性と内部構造の隠蔽
Moo::Roleを使ったインターフェースの定義- Iteratorパターンの4つの要素(Iterator、ConcreteIterator、Aggregate、ConcreteAggregate)
- デザインパターンの活用方法
ぜひ第1回から順番にお読みください。
