UMLの合成と集約の違いが、よくわかりません。
調べても、サイトによって、意見が異なります。
そのようななかで、以下のサイトは、なんとなく、信憑性が高そうな気がしました。
https://stackoverflow.com/questions/885937/what-is-the-difference-between-association-aggregation-and-composition
上記のサイトに、以下のコードが掲載されていました。
c++
1// 合成(Composition) 2public class Foo { 3 private Bar bar = new Bar(); 4}
c++
1// 集約(Aggregation) 2public class Foo { 3 private Bar bar; 4 Foo(Bar bar) { 5 this.bar = bar; 6 } 7}
しかし、合成も集約も、Fooクラスがbarオブジェクトを持っているという意味では同じに思えてなりません。
上記の合成のコードを、以下のようにすれば、集約になるのでしょうか?
c++
1// 集約(Aggregation)??? 2public class Foo { 3 private Bar bar = new Bar(); 4 Foo(Bar bar) { 5 this.bar = bar; 6 } 7}
UMLは、プログラムのことを考慮して作られたわけではない(?)というようなことはどこかで読みましたが、それにしても、プログラマにとって、合成と集約の違いって、意識する意味って、あるのでしょうか・・・?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/31 10:53