デザインパターンを覚えたい (iterator)
デザインパターンってなに
先人の知恵の塊です。ソースコードを書く上で出てくる共通のパターン集みたいな、うまくコードを書くための方法論みたいな。
GoF本が有名とか、自宅にあるけど読んでないなぁ(遠い目)
デザインパターン知ってると
- 設計、コーディングの指標となる
- プログラマ間のコードの説明等を効率的に行える
とかメリットがあるのかなと思う。個人的には特に後者がとっても重要だと感じます。実際。自分もわからなくて?とかなることあったし。
コミュニケーションってとっても大事。
コミュニケーションってとっても大事。
この本を参考に勉強する。
- 作者: 結城浩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2004/06/19
- メディア: 大型本
- 購入: 51人 クリック: 762回
- この商品を含むブログ (397件) を見る
Iteratorパターン
とある集合体内の要素を順次アクセスするためのパターン。
集合体と反復子のペアを実装し、それ経由で外部プログラムから参照させることで
- 外部からの共通のアクセス方法の提供
- 内部構造が変わっても外部実装に影響させない
といった利点を生み出す。詳しくはさっき紹介した書籍をどうぞ。
なにはともあれ実装してみる。本だとJavaだったから、それ以外のオブジェクト指向言語を使いますかね。
初回だしとりあえず道具の揃ってるC++でやってみる。
ソース一式
http://dl.dropbox.com/u/7810000/code/design_pattern/iterator.zip
ヘッダの依存関係のせいで実装クラスのAggregateとIteratorのソースをうまく分離できなかったけど、まあいいや。
実行は次の通り。なお、実行にはg++とomakeが必要です。(omakeはなくても手動でビルドすればおk)
$ unzip iterator.zip
$ cd iterator
$ omake
$ ./iterator_test
book1 : "デザインパターン入門"
book2 : "入門Git"
book3 : "情熱プログラマー"