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?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…