デザパたん シーズン2 第6回 チェインオブレスポンシビリティ

デザインパターン勉強会 シーズン2の第6回 チェインオブレスポンシビリティ 担当は @ina_ani ブログ http://dezapatan.g.hatena.ne.jp/inajob/20120327
0

準備中

ina_ani@3歳児のパパ @ina_ani

むー とりあえず動くサンプルはできた 説明を書くだけ書いて発表は来週を期待するか。 もう少し作りこみたい #dezapatan

2012-03-27 00:55:31

デザパたん シーズン2 第6回 チェインオブレスポンシビリティ
デザパたん はてグ

ぽり野郎 @polistes

チェインオブレスポンシビリティ #dezapatan

2012-03-27 20:14:53
ぽり野郎 @polistes

せっかくのGUIがJava実行環境なくて動かない #dezapatan

2012-03-27 20:23:06
ぽり野郎 @polistes

コンポジットを利用。枠と部品 #dezapatan

2012-03-27 20:24:09
ぽり野郎 @polistes

ShapeとColorはJavaのクラスを利用。 #dezapatan

2012-03-27 20:28:30
ぽり野郎 @polistes

チェインオブレスポンシビリティは振る舞い。生成でも構造でもないよね。 #dezapatan

2012-03-27 20:29:09
ぽり野郎 @polistes

コンポジットは構造なので、チェインオブレスポンシビリティの振る舞いでそのなかを探索。オブジェクトの取得とか、処理の実行とかは問わない。責任を受け渡していく #dezapatan

2012-03-27 20:30:46
ぽり野郎 @polistes

Shapeのcontainsメソッドを利用すると複雑な図形をクリックしたかどうかわかる。便利 #dezapatan

2012-03-27 20:32:16
ぽり野郎 @polistes

なんでLinkedList?途中を消す操作が入るときはこっちのがいいかも。 #dezapatan

2012-03-27 20:38:53
ぽり野郎 @polistes

再起構造にたいして再起処理を実行するのは普通 #dezapatan

2012-03-27 20:54:19
ぽり野郎 @polistes

クラス図的には、同じインターフェイスを実装してればいい #dezapatan

2012-03-27 20:58:22
ぽり野郎 @polistes

オブジェクト自信が責任をもつかどうかを判断して、子要素にも要素を伝搬させたりする。 #dezapatan

2012-03-27 20:59:30
ぽり野郎 @polistes

データ構造は問題じゃなくて、処理というか責任を投げ回してるのが本質っぽい。 #dezapatan

2012-03-27 21:00:17
ぽり野郎 @polistes

メリット:送信するオブジェクトと受信するオブジェクトを分離できる。クライアントがいろんなオブジェクトを知る必要がない。各処理をオブジェクトに押し込めることができる #dezapatan

2012-03-27 21:06:52
ぽり野郎 @polistes

デメリット:最後まで処理できない可能性がある。1つも処理ができない場合にはクライアントが責任。無限ループになるときも。 #dezapatan

2012-03-27 21:07:53

チェインオブレスポンシビリティーに関連するパターンの話

ぽり野郎 @polistes

オブザーバーとメディエーターが関連パターンかなー。 #dezapatan

2012-03-27 21:09:17
ぽり野郎 @polistes

オブザーバを実装した場合は図形がサブジェクト「私がクリックされたぞー!!」って叫ぶ。あらかじめ登録しておいたオブザーバの一覧に通知。 #dezapatan

2012-03-27 21:19:11
ぽり野郎 @polistes

!('A`)パネルをサブジェクト、図形をオブザーバにすれば、オブザーバパターンでもこの例実装できるんじゃね #dezapatan

2012-03-27 21:23:10
ぽり野郎 @polistes

親子関係が消滅するので、欠点が増えるだけでした。 #dezapatan

2012-03-27 21:23:44

擬人化フェーズに移行