私は最近、私が書いたさまざまなSWコンポーネントの詳細なUML設計を実行するのにかなりの時間を費やしました。私が最近終えたことを振り返り、それを最初にUMLを学んだときと比較すると、今ではほぼ厳密に集約と構成の関係を使用し、「バニラ」の無向/有向の関係を事実上放棄していることがわかります。もちろん、私はまだ一般化と実現を使用していますが、これらは上記のものとは明らかに異なり、この質問の一部とは見なされません。
アグリゲーション/コンポジションは、「バニラ」アソシエーションなどと同じ意味を持っているように私には思えます。アグリゲーションとコンポジションは当然方向性を意味します。最新のUMLプログラムでは、アグリゲーション/コンポジションの関係に多重度を定義し、その関係に動詞を適用することもできます。その時点で、私はバニラ協会にほとんど目的を見ていません。
アグリゲーションとコンポジションの違いを理解するのが難しい人もいると思います。早い段階で、それらがどのように異なるかを理解するのは少し困難でした。混乱がバニラアソシエーションを使用した理由の一部だったと思います。私は今、バニラアソシエーションの使用がほとんどまたはまったく見られず、実際には、バニラアソシエーションがいくつかの問題(特に2つのオブジェクト間の強いまたは弱いライフサイクル関係)を残していると信じているため、それらが使用されるのを見るのが嫌いです。バニラアソシエーションの唯一の実用的な用途は、目前の問題についての理解がまだ十分に発達しておらず、集約と構成のライフサイクルの違いを判断できない場合だと思います。そのような場合は、少なくともショーをする方が良いです関係が存在し、目前の問題をよりよく理解したときに、戻って適切に変更できること。
簡単に言えば、人々がバニラアソシエーションを使用する時間の大部分は、より正確には集合体として、場合によっては構成として説明できると思います。私は自分の信念がひどく間違っていますか?私は何かが足りないのですか?聞かせて!