FITEA定期勉強会 第4回まとめ
■FITEA定期勉強会 第4回
■日時:8/23(土) 16:00~19:00
■担当者:飛田さん
■参加者:飛田さん、橋本さん、徳山さん、新出さん、前田さん、朝井
■内容
・自己紹介
自己紹介の際に、ちょっとしたネタ振りがありました。
飛田さん:
新出さん:iPhone
橋本さん:末尾再帰
徳山さん:
前田さん:
朝井 :Webサービスの紹介
・前半:デザインパターンの輪講
strategyとstate
比較 - どちらも同じクラス図になるが、どこが違うのか?
strategy
strategyとは?
戦略
アルゴリズムの交換が可能
ドラクエAIの作戦切り替えのイメージ
どのような場合に使われるか?
JavaではDIを用いるため、意識して使うことは少ない
JavaのJDBCでは、SQLの種類に応じて抽象化された処理を切り替える
ソートのコンペア関数を切り替える
デモ
じゃんけんゲーム
作戦を切り替える(作戦を切り替える際に、1つ前の手を参照するケースも
考えられる)
類似したパターンをどのように区別するか?
strategy、state、adapter
state
stateとは?
状態
状態をクラスで表す
状態によって振る舞いが変わる
デモ
信号
赤青黄の状態 - 状態を変えるのは信号自身
状態変更も隠蔽される
状態遷移のパターンは決まっている(青→黄→赤→青→…)
信号管理機
信号のインスタンスを使うだけで、状態遷移を行う訳ではない
信号に基づくジャッジ(進めるか否か、など) も行わない
信号表示器
信号を表示するのみ
信号管理機が時間を進める
時間を進めるイベントに反応して、必要に応じて信号の状態を変える
状態遷移の時には、状態遷移を行うメソッドに自分自身を引数として渡す
信号の実装
A、B、の2種類がある
A;状態クラスが、振る舞いと状態遷移の2つを持つ
B:状態クラスは振る舞いだけを持ち、信号の状態遷移は信号管理機
という別のクラスに移管する
Aの場合
新しい状態が追加された場合には、全体を再コンパイルし、再テストする
必要が生じる
Bの場合
状態が追加された場合に、既存の状態には手を加える必要は無く、追加した
状態と信号切り替え機のみの修正+テストですむ
Bのケースにおける信号切り替え機の修正作業は相当大変なのではないか?
→ 全体を再コンパイル、再テストするよりはマシ
→ 企業ではBが好まれるが、Bの方がコストが高くつかないか?
→ 程度問題であり、ケースバイケースで、AとBを使い分ける
どのような場合に使えるか?
どのようなシステムでも、状態遷移を持っているので、使える
ただし、設計が悪いと大変なことになる
O/Rとはあまり相性が良くない
まとめ
strategyは意識せずに使われているが、stateは意識して使わないと使えない
strategyは意識して振る舞いを選択するが、stateは意識せずに振る舞いが変わる
・後半:持ち寄ったネタでの雑談
新出さんが、iPod Touch上で動くアプリケーションのデモを見せてくれました。
現時点では、iPod TouchやiPhoneの開発キットの入手には登録が必要で、
また、契約内容にNDAが含まれることもあり、あまり詳しい話はありませんでした。
SafariがJavaScriptに対応しており、加速度センサーの状態等も取得できるため、
JavaScriptでアプリを作ると面白いのではないか?
(登録不要で、無償)とのこと。
・KPTの結果
ーKeep:良かったこと
自己紹介できた
時間を守れた
WLANが使えた
iPod Touchのデモが見れた
デザインパターンのデモがあった
議論が出来た
複数のパターンについて言及する議論が出来た
ーProbrem:悪かったこと、失敗したこと
漢字が書けない
ネタしこみを忘れた
告知メール(2通目)の送信が遅れた
参加表明を忘れた
ーTry:次回はこうしよう
Webに結果を掲載する(新出さん)
テレビ台があるとうれしい(堀内さんと要相談)
・前回のTryについて
ーテレビ台を用意する
→次回に持ち越し
ー飲み物を事前に用意しておく
→用意できた
ーUMLクイズのネタを持ち寄る
→出来なかった
ーUMLの勉強をしてくる
→出来なかった
■次回以降のスケジュール(最低2回先までは予定を立てます)
日時 担当者 デザインパターン
5回目:9/6(土) 16:00~19:00 徳山さん Command
6回目:9/27(土) 9:00~12:00 堀内さん (未定)
7回目:(未定) 朝井 (未定)
8回目:(未定)
■実績ログ
1回目:7/12(土) 9:00~ 朝井 Visitor
2回目:7/26(土) 15:00~ 前田さん Iterator
3回目:8/9(土) 9:30~ 橋本さん Composite
4回目:8/23(土) 16:00~ 飛田さん StateとStrategy
トラックバック URI : http://fitea.org/wp-trackback.php?p=82
コメント (0)
