Я пытаюсь подтвердить свое понимание того, как будет выглядеть код для объединения, агрегации и состава. Так вот идет..
Агрегация: Has-a. Он имеет существующий объект другого типа
public class Aggregation
{
SomeUtilityClass objSC
public void doSomething(SomeUtilityClass obj)
{
objSC = obj;
}
}
Состав: состоит из другого объекта
public class Composition
{
SomeUtilityClass objSC = new SomeUtilityClass();
public void doSomething()
{
objSC.someMethod();
}
}
Ассоциация. У меня есть два мнения об этом.
- Когда один класс связан с другим. Следовательно, оба примера являются примерами ассоциации.
-
Ассоциация представляет собой более слабую форму агрегации, где класс не сохраняет ссылку на объект, который он получает.
public class Association { //SomeUtilityClass objSC /*NO local reference maintained */ public void doSomething(SomeUtilityClass obj) { obj.DoSomething(); } }
Правильно ли я понимаю? Я прочитал противоречивые статьи здесь и здесь, и поэтому я действительно не уверен, какой из них следует соблюдать. Мое понимание похоже на первое звено. Я чувствую, что вторая ссылка неверна, или, может быть, я не понял ее правильно.
Как вы думаете?