В чем разница между агрегацией, составом и зависимостью?

В чем разница между агрегацией, составом и зависимостью?

Ответ 1

Агрегация подразумевает связь, в которой ребенок может существовать независимо от родителя. Пример: класс (родительский) и ученик (дочерний элемент). Удалить класс и студенты все еще существуют.

Состав подразумевает связь, в которой ребенок не может существовать независимо от родителя. Пример: Дом (родитель) и Комната (ребенок). Номера не существуют отдельно от Дома.

Вышеуказанные два являются формами сдерживания (следовательно, отношения родитель-потомок).

Зависимость - более слабая форма отношения, а в кодовых терминах указывает, что класс использует другой параметр или тип возвращаемого значения.

Зависимость - это форма ассоциации.

Ответ 2

Агрегация и состав почти полностью идентичны, за исключением того, что состав используется, когда жизнь ребенка полностью контролируется родителем.

Агрегация

Car -> Tires

Tires можно снять с объекта Car и установить на другом. Кроме того, если автомобиль будет подсчитан, шины не обязательно должны быть уничтожены.

Состав

Body -> Blood Cell

Когда объект Body уничтожается, BloodCells уничтожается вместе с ним.

Зависимость

Связь между двумя объектами, где изменение одного может повлиять на другое.

Ответ 3

Агрегация - отделяемая часть к целому. Часть имеет свою личность, отдельно от той, в которой она является частью. Вы можете выбрать эту часть и перенести ее на другой объект. (примеры реального мира: колесо → автомобиль, кровь → тело)

Состав - неотделимая часть целого. Вы не можете переместить часть на другой объект. больше похоже на собственность. (примеры реального мира: кривая → дорога, личность → человек, max_speed → автомобиль, свойство объекта → объект)

Обратите внимание, что отношение, являющееся совокупностью в одном проекте, может быть композицией в другой. Его все о том, как отношение должно использоваться в этом конкретном проекте.

зависимость - чувствительна к изменениям. (количество дождя → погода, головное положение → расположение тела)

Примечание: "Bloodcell" → Blood "может быть" композицией ", поскольку клетки крови не могут существовать без лица, называемого кровью." Кровь "- > Тело" может быть "Агрегацией", поскольку Кровь может существовать без тела, называемой Телом.

Ответ 4

Объект, связанный с отношением состав, не будет существовать вне содержащего объекта. Примерами являются Назначение и владелец (Лицо) или Календарь; TestResult и пациента.

С другой стороны, объект, который агрегирован для содержащего объекта, может существовать вне этого содержащего объекта. Примерами являются дверь и дом; Сотрудник и отдел.

A зависимость относится к совместной работе или делегированию, когда объект запрашивает службы у другого объекта и зависит от этого объекта. Как клиент службы, вы хотите, чтобы интерфейс службы оставался постоянным, даже если предлагаются будущие услуги.

Ответ 5

Агрегация и состав - это термины, которые большинство людей в мире ОО приобрели через UML. И UML делает очень плохую работу по определению этих терминов, как это было продемонстрировано, например, Henderson-Sellers and Barbier ( "Что такое эта называемая агрегация?", "Формализация отношений цельной части на унифицированном языке моделирования" "). Я не думаю, что может быть дано согласованное определение агрегации и композиции, если вы заинтересованы в совместимости с UML. Я предлагаю вам посмотреть приведенные работы.

Что касается зависимости, то очень абстрактная связь между типами (а не объектами), что может означать почти все.

Ответ 6

Containment: - Чтобы получить доступ к внутреннему объекту, мы должны использовать внешний объект. Мы можем повторно использовать содержащийся объект. Агрегация: здесь мы можем снова и снова обращаться к внутреннему объекту без использования внешнего объекта.

Ответ 7

Один объект может содержать другой как часть его атрибута.

  • содержит предложения, содержащие слова.
  • Компьютерная система имеет жесткий диск, RAM, процессор и т.д.

Таким образом, сдерживание не должно быть физическим. например, компьютерная система имеет гарантию.