UMLで大間違い
UMLで大きな勘違いをしていたことに最近気づいた。
それは、関連線(実線)と依存線(破線)だ。
依存と言うくらいだから、関連より強いものだと思っていたけど、
どうも違うらしい。
依存というのは、オブジェクト関連の中でもっとも弱いもので、
短期間の関係しかない場合は依存になるそうだ。
つまり、引数で渡されて、ちょっといじって終わり。的なものだね。
関連は、それとは違って、
フィールドなどに格納され、長期的な関係が生まれるものだ。
なーるほどね。
ついでに、
集約(◇→)はA◇→Bの場合、BはAの一部である場合に使う。
つまり、Aが存在意義を持つためにはBが必要ってこと。
ツリーのノードとリーフの関係なんかがそう。
コンポジション(◆→)はA◆→Bの場合、Aの内部でBが作られるとか、Aが消えたらBも消えちゃうとか、そういう場合。
こっちは、Bが存在意義を持つためにはAが必要不可欠って感じ。
集約のほうは、ノードが消えてもリーフの存在意義はあるからね。