Ассоциация
Ассоциация - это связь, в которой все объекты имеют свой жизненный цикл, и у них нет владельца.Давайте возьмем пример Учителя и Студента.Несколько учеников могут связываться с одним учителем, а один ученик может связываться с несколькими учителями, но между объектами нет права собственности, и оба имеют свой жизненный цикл.Оба могут создавать и удалять независимо.
Агрегация
Агрегация - это специализированная форма ассоциации, где все объекты имеют свой собственный жизненный цикл, но есть владение, и дочерний объект можетне принадлежит другому родительскому объекту.Давайте возьмем пример кафедры и преподавателя.Один учитель не может принадлежать нескольким отделам, но если мы удалим преподавателя, объект не будет уничтожен.Мы можем думать об отношениях «имеет-а».
Композиция
Композиция снова является специализированной формой Агрегации, и мы можем назвать это «смертью».Это сильный тип агрегации.Доза дочернего объекта не имеет своего жизненного цикла, и если родительский объект удаляет все дочерние объекты, они также будут удалены.Давайте снова возьмем пример отношений между Домом и комнатами.Дом может содержать несколько комнат, нет независимой жизни комнаты, и любая комната не может принадлежать двум разным домам, если мы удалим дом, комната автоматически удалится.
Итак, Я не думаю, что отношениемежду автомобилем и двигателем должен быть состав , поскольку двигатель мог бы существовать без автомобиля, я думаю, что отношение между автомобилем и двигателем - это агрегирование.
Короче говоря;да, читая код, вы можете определить тип отношений (состав и агрегация; но я не уверен, что ассоциация) в соответствии с определениями, и я думаю, что ваши шаблоны для дифференцирования верны.