For two objects Foo
and Bar
we have:
Dependency:
class Foo
{
...
fooMethod(Bar bar){}
...
}
Association:
class Foo
{
private Bar bar;
...
}
Composition: (When Foo
dies so does Bar
)
class Foo
{
...
private Bar bar = new Bar();
...
}
Aggregation: (When Foo
dies, Bar
may live on)
class Foo
{
private List<Bar> bars;
}