I am trying to confirm my understanding of what the code would look like for association, aggregation & composition. So here goes.
Aggregation: Has-a. It has an existing object of another type
public class Aggregation { SomeUtilityClass objSC public void doSomething(SomeUtilityClass obj) { objSC = obj; } } Composition: Is composed of another object
public class Composition { SomeUtilityClass objSC = new SomeUtilityClass(); public void doSomething() { objSC.someMethod(); } } Association: I have two views on this.
When one class is associated with another. Hence both the above are examples of association.
Association is a weaker form of Aggregation where the class doesn't keep a reference to the object it receives.
public class Association { //SomeUtilityClass objSC /*NO local reference maintained */ public void doSomething(SomeUtilityClass obj) { obj.DoSomething(); } } Is my understanding correct? I have read conflicting articles here and here and so I am really not sure which one to follow. My understanding seems to be in line with the first link. I feel the second link is wrong, or maybe perhaps I haven't understood it properly.
What do you think?
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; }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With