KMC活動ブログ

京大マイコンクラブの活動の様子を紹介します!!

デザインパターン勉強会 第一回

デザインパターンの勉強会を始めました。
今回の内容は、初回ということでUMLを覚えてからIteratorパターンをやりました。


いざUMLを覚えてみようと思っていろいろ探してみると、モノによって表記が違うことがしばしば。
とりあえず、クラス図に登場する矢印がややこしいのでまとめることに。


破線、先端に△ :実現 SがDを継承する。Sは抽象クラスまたはインタフェースで、Dは普通のクラス。
実線、先端に△ :特化 SがDを継承する。通常の継承関係を表す。
根本に◇と実線 :集約 SがDを保持する。
破線 :依存 SがDをほげほげする。なんか状況によって便利に使われているようにしか見えない。実線のものとどう違うかよくわからない。


あと集約度の書き方を覚えて、なんとなくUMLが読める気分になったところでIteratorパターンを実装してみることにします。
言語はオブジェクト指向ならなんでも良いのだけれど、今回はC#にしてみました。
適当に実装し終わったところで、Iteratorパターンを使うと何が嬉しいのか考えてみました。


共通のインターフェースを持たせることで、AggregateとIteratorの実装を変更しても利用者がコードを変更しなくてよくなります。
また、AggregateとIteratorに分離することで、一つのAggregateに対して同時に複数の捜査を走らせることが簡単にできるというメリットもあります。


作業風景。
次回は来週の金曜日の予定。

担当:dis-