2010-04-27 2 views
1

В моделировании ООП существует ли какое-либо различие между отношением «has-a» и «сложенными» отношениями?Разница между has-a и составом?

+0

Является ли это повторение: http://stackoverflow.com/questions/731802/what-is-the-difference-between-composition-and-association-relationship – Sunny

+0

Солнечный , да, спасибо, выглядит как повторение. Я этого не видел. – fig

ответ

4

Оба утверждения обычно означают Состав.

Но мне кажется, что состоит из- всегда означает состав в то время как имеет-а иногда может означать агрегацию (но не на рисунке). В UML это выглядит следующим образом:

alt text http://www.atomicobject.com/images/UML_CompositionAggregation.png

1

Не совсем так, поскольку оба указывают, что родительский объект содержит экземпляр дочернего класса. В основном это семантическая разница, где «has-a» представляет собой связь между двумя различными объектами, где «составленный» указывает, что ребенок является неотъемлемой частью родителя.

+0

Интересный вопрос, касающийся другого ответа, заключается в том, может ли двигатель иметь идентичность независимо от автомобиля, на котором он установлен. Я бы сказал, что ответ «да». Однажды я купил двигатель для замены автомобиля. Я хотел бы надеяться, что установщики смогут отличить движок, который они удалили от того, который они установили. Тем не менее, во многих приложениях двигатель может быть смоделирован как подобъект автомобиля без ущерба. –