0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Iteratorパターン(TECHSCORE読書会)

Posted at

目的

ちゃんと勉強していなかったデザインパターンを学習したい。
TECHSCORE様のまとめ(何度か3日坊主に)を読み切りたい。

本日のページ

Iteratorパターンとは

  • Listの各要素にアクセスする方法を提供するためのパターン
  • 要素の捜査方法を与えるクラスをListとは独立させておく

サンプルケース

学校の先生で生徒の名簿を扱う

学校から支給されたStudentListクラスを自由に拡張して利用することができるものとする。
以下を先生に求める能力と定義する。

  1. 先生は、学校から与えられた名簿に自分の生徒を書き込むことができる
  2. 先生は、生徒の名前を名簿の記載順に呼ぶことができる

StudentList型の変更

StudentListを直接拡張すると、StudentListが急に変更になった際に、大きな影響を受ける。

Iteratorパターン

Iteratorパターンとは

  • Iteratorパターンでは、何らかの集合体がAggregateインタフェースを実装する(Aggregateとは、集約を意味する単語)
  • Aggregateインタフェースは、Iteratorインタフェースの実装クラスを返す
  • Iteratorインタフェースでは、次の要素が存在するかしないかをboolean型で返すhasNext()メソッドと、次の要素を返すnext()メソッドを定義する。

サンプルケースの解決

集合体が変わっても、構造は影響を受けない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?