Разница между «есть» и «состоит из»? - PullRequest
1 голос
/ 27 апреля 2010

В ООП-моделировании существует ли какое-либо различие между отношением "имеет-есть" и отношением "состоит из"?

Ответы [ 2 ]

4 голосов
/ 27 апреля 2010

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

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

альтернативный текст http://www.atomicobject.com/images/UML_CompositionAggregation.png

1 голос
/ 27 апреля 2010

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

...