ソフトウェア開発メモ

日々のソフトウェア設計、実装で考えている、気づいた事を書いています。それが真実か否かは保証しません。悪しからず。

コラボレーションを識別する戦略

オブジェクトデザイン 5.4 コラボレーションを識別する戦略」を読んでまとめてみました。

ユースケースや設計ストーリーをたたき台に、コラボレーションをくみ上げて行きます。実際には責務発見の作業と並行に行う事になると思います。

また、デザインパターン等を使用してより適切なコラボレーションになる様にチューニングして行きます。   以下の点に注意します。

  • アーキテクチャーが促進するコラボレーションに留意します。
  • レイヤー間の個々のクラスが余り直接やりとりとしない様に設計します。ただし、ビューとエンティティクラス等は直接結びついたりするかもしれません。また、色々なクラスを構造化しているクラスは、抱えているクラスが他のクラスとやりとりしない様にメソッドを用意する事を検討します。
  • ゲッター/セッターレベルのメッセージが飛び交うとか、一つのオブジェクトに連続してメッセージを送っていないか? 責務バランスが崩れている可能性が有ります。 *メッセージの 引数にプリミティブデータを渡していないどうか確認します。小さなクラスとして抽出できるかもしれません。
  • シーケンス図やコミュニケーション図を俯瞰する等して、責務バランスが健全に保たれているかか俯瞰するようににします。