Site Tools


c_aggregation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

c_aggregation [2013/02/25 11:03]
konovalov created
c_aggregation [2013/02/25 11:17] (current)
konovalov
Line 14: Line 14:
 студенты.\\ студенты.\\
 {{:​screenshot-12.png?​nolink|}}\\ {{:​screenshot-12.png?​nolink|}}\\
-{{:​screenshot-13.png?​nolink|}}+{{:​screenshot-13.png?​nolink|}}\\ 
 + 
 +  стр.38 GOF 
 +  Рассмотрим различие между агрегацией и осведомленностью (acquaintance) (синоним “использование”) 
 +  объектов и его проявления на этапах компиляции и выполнения. Агрегация подразумевает,​ что один объект 
 +  владеет другим или несет за него ответственность. 
 +  В общем случае мы говорим,​ что объект содержит другой объект или является его частью. В общем случае мы 
 +  говорим,​ что один объект содержит другой объект или является его частью. Агрегирование означает,​ что агрегат 
 +  и его составляющие имеют одинаковое время жизни. 
 +  Говоря же об осведомленности,​ мы имеем в виду, что объекту известно о другом объекте. Иногда 
 +  осведомленность называют ассоциацией или отношением «использует». Осведомленные объекты могут запрашивать 
 +  друг у друга операции,​ но они не несут никакой ответственности друг за друга. Осведомленность - это более 
 +  слабое отношение,​ чем агрегирование;​ оно предполагает гораздо менее тесную связь между объектами. 
 +  В С++ агрегирование можно реализовать путем определения переменных-членов,​ которые являются экземплярами,​ 
 +  но чаще их определяют как указатели или ссылки. Осведомленность также реализуется с помощью указателей и 
 +  ссылок. 
 +  Различие между осведомленностью и агрегированиеам определяется,​ скорее,​ предпологаемым использованием,​ а не 
 +  языковыми механизмами. 
 + 
 + 
 +Вероятно,​ авторы хотели сказать,​ что агрегация,​ это переменные класса(антрибуты),​ как ссылочные так и указателем.\\ 
 +Композиция,​ это агрегация указателем.\\ 
 +Осведомленность,​ это агрегация ссылочная + все остальные случае обращения по ссылкам.
c_aggregation.txt · Last modified: 2013/02/25 11:17 by konovalov

Page Tools