クラス図について... その2
UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)
- 作者: マーチン・ファウラー,羽生田栄一
- 出版社/メーカー: 翔泳社
- 発売日: 2005/06/16
- メディア: 大型本
- 購入: 8人 クリック: 254回
- この商品を含むブログ (93件) を見る
5章読んでいて、使っている表現と使っていない表現があったので、復習を兼ねてまとめ。
■クラスに追加するとわかりやすくなる(具体的な書き方は上の書籍参照)
・キーワード:このクラスはインターフェースクラスだよといったことを明示する
・リスポンシビリティ:クラスの責務を明示する
・staticな操作、属性 :CやC++のstaticみたいなやつは明示しようという話
ほんとにクラスの要素ある必要あるの?とか検証に使えそう
・派生プロパティ :他のプロパティに依存する(計算できたりする)プロパティ
■クラス関連の書き方
・集約:よくいうのはhas-a関係で所有権のある場合に使う。といっても、has-a関係
でも関連で書かれていることはよくあります。
あまり深く考えずに、関連より強い関係のときに使うぐらいでいいと思う。
書いた人がいれば聞くのが一番だと思うが、かなりの確率で、特に意味はない
という答えになると思います。
・コンポジション:コンポジションクラス(所有する側)が消えるとき、所有されて
いるクラスも消えてしまうような、とても強い関係の場合に使う。
■クラス図自体の書き方
・インターフェース:すべての操作が抽象操作で、直接インスタンス化できない。
・抽象クラス:1つ以上の抽象操作(実装がない操作)をもつクラス。
直接インスタンス化できない。
2つの差異は、インターフェースはクラスの機能(振る舞い)を示すもので、抽象クラスはクラスの意味を示すもの。(間違ってたらごめんなさい)
インターフェースクラスは特に重要で、クライアントクラスがインターフェースに依存するようにして、実装に依存しないようにすることで、実装の変更がクライアントに及ばないようにする。(詳しくは依存関係逆転の法則をみてください)