これまでの分(第 1 〜 3 章)はこちら。
前回の章まででは、オブジェクトの「候補」を見つける方法について説明されていました。今回の第 4 章は、主に
- 対象となる問題領域にある責務の見つけかた
- オブジェクト候補に対する責務の割り振りかた
という話でした。重要な概念である責務についての章となります。
4 責務
4.1 責務とは何か
- オブジェクトが担う責務とは以下のもの
- アクションの実行
- 情報の保持
- 他に影響を与える判断
4.2 責務はどこから見つかるか
ソフトウェアに対する要求から見つける
- ユースケースの記述
- アクション実行、情報保持、判断実行の責務に書き換え
- さらに制御や調整の責務を発見
- テーマと設計ストーリー
- 重要点に絞られた抽象的記述から責務を発見
- ユースケースの記述
オブジェクト候補の性質から見つける
- ロールステレオタイプ
- 情報保持役は知る責務、サービス提供役は特定のサービスを実行する責務、……
- 内部的な性質
- パブリックな責務に必要なプライベートな責務
- 候補間の関連、依存関係
- 構造化役は構造化するオブジェクトに関する責務を保持
- ライフイベント
- 制御役、調整役は外部的/内部的な変化、イベントに反応する責務を保持
- ロールステレオタイプ
その他
- 抽象度の高い要求から推論して細かい責務を導出
- 特定のソフトウェア環境のための技術的な責務
4.3 責務を割り当てるための戦略
- 責務の記述
- 抽象度の高い状態から適切な抽象度の記述へ
- 具体的な動詞の利用
- 大きな責務の分割
- 他オブジェクトとコラボレート
- ヘルパーに委譲
- 情報と責務のまとまり
- 保持する情報に関連する責務を割り当て
- 関連する情報はひとつのオブジェクトに保持
4.4 オブジェクトと責務を実装する
- 抽象的な候補オブジェクトから実装としてのクラスに変換
- 必ずしも一対一に対応しない
- ひとつのオブジェクトは複数のロールを持ちうる
- 主ロール(主な目的と特徴を定義した責務からなる)
- 副ロール(環境に適合するための責務からなる)
インタフェースはひとつのロールを異なるオブジェクトが演じるときに必要
責務をメソッドとそのシグネチャに変換
- インタフェースに抽象化
4.5 候補の品質を検証する
- オブジェクトが適切か調べる方法
- 目的に専念しているか
- 責務が明確に定義されているか
- 責務がそのロールに合致しているか
- 所属地域の他のオブジェクトに価値を与えているか
参考文献
オブジェクトデザイン (Object Oriented SELECTION)
- 作者: レベッカ・ワーフスブラック,アラン・マクキーン,株式会社オージス総研藤井拓,辻博靖,井藤晶子,山口雅之,林直樹
- 出版社/メーカー: 翔泳社
- 発売日: 2007/09/13
- メディア: 大型本
- 購入: 3人 クリック: 52回
- この商品を含むブログ (42件) を見る