вівторок, 27 жовтня 2015 р.

Отношения между классами (объектами): ассоциация, агрегация и композиция

Ассоциация 

 Ассоциация означает, что объекты двух классов могут ссылаться один на другой, иметь некоторую связь между друг другом. Например Менеджер может выписать Счет. Соответственно возникает ассоциация между Менеджером и Счетом. Еще пример – Преподаватель и Студент – т.е. какой-то Студент учится у какого-то Преподавателя. Ассоциация и есть описание связи между двумя объектами. Студент учится у Преподавателя. Идея достаточно простая – два объекта могут быть связаны между собой и это надо как-то описать.



Агрегация и композиция 

Агрегация и композиция на самом деле являются частными случаями ассоциации. Это более конкретизированные отношения между объектами. Агрегация – отношение когда один объект является частью другого. Например Студент входит в Группу любителей физики. Композиция – еще более “жесткое отношение, когда объект не только является частью другого объекта, но и вообще не может принадлежат еще кому-то. Например Машина и Двигатель. Хотя двигатель может быть и без машины, но он вряд ли сможет быть в двух или трех машинах одновременно. В отличии от студента, который может входить и в другие группы тоже. Такие описания всегда несколько условны, но тем не менее.

Пример агрегации:
one classroom has a student
one classroom has many students
If I deleted classroom object I would not be expect that all student object will be deleted. They can uese another object

Пример композиции:
document has pages
If I deleted document object all asociated pages deleted will be deleted.

Немає коментарів:

Дописати коментар