Ключевое различие - агрегирование и композиция в Java
Агрегация - это ассоциация между двумя объектами, которая описывает отношение «есть». Состав - это более конкретный тип агрегирования, подразумевающий владение. Ключевое различие между агрегацией и композицией в Java состоит в том, что если содержащийся объект может существовать без существования объекта-владельца, это агрегация, а если содержащийся объект не может существовать без существования объекта-владельца, это композиция..
Объектно-ориентированное программирование (ООП) - основная парадигма в разработке программного обеспечения. Он используется для моделирования программного обеспечения с помощью объектов. Объекты создаются с помощью классов. Класс состоит из свойств и методов. В программном обеспечении есть несколько объектов. Каждый объект взаимодействует друг с другом посредством передачи сообщений. Связь между двумя объектами называется ассоциацией. И агрегация, и композиция - это два типа ассоциации. Отношение «есть» описывает, что один объект может использовать другой объект. Агрегация и композиция могут быть реализованы на языках, поддерживающих ООП. Если содержащийся объект может существовать без существования объекта-владельца, тогда связь между этими двумя объектами является агрегированием. Если содержащийся объект не может существовать без существования объекта-владельца,тогда связь между этими двумя объектами - это композиция.
СОДЕРЖАНИЕ
1. Обзор и основные различия
2. Что такое агрегация в Java
3. Что такое композиция в Java
4. Сходства между агрегацией и компоновкой в Java
5. Сравнение бок о бок - агрегирование и композиция в Java в табличной форме
6. Резюме
Что такое агрегация в Java?
Агрегация - это тип ассоциации. Если класс имеет ссылку на сущность, это называется агрегированием. Агрегация представляет собой взаимосвязь. Объект Student может иметь такие свойства, как student_id, name, address. Этот объект также может иметь другой объект, называемый адресом, с собственной информацией, такой как город, штат, страна. В этой ситуации у Студента есть ссылочный адрес объекта. Это отношения типа «есть».
Рисунок 01: Класс Marks
Рисунок 02: Основная программа для описания агрегирования
Согласно указанной выше программе, класс «Marks» состоит из трех свойств: оценок по математике, английскому языку и естественным наукам. У Студента есть объект Оценок. У него есть свои свойства, которые являются отметками математики, английского языка и естественных наук. В основном методе создается объект Marks и присваиваются значения меток. Объект ученика s1 может использовать объект оценок m1. Следовательно, между Студентом и Марками существуют отношения «имеет». Объект Marks может существовать без объекта Student. Следовательно, это агрегирование.
Что такое композиция в Java?
Композиция - это тип ассоциации. Это особая форма агрегирования, подразумевающая владение. Предположим, что существует два класса, называемые классом A и B. Если объект класса B не может существовать, если объект класса A уничтожен, то это композиция. Книга состоит из многих страниц. Если книга будет уничтожена, страницы также разрушатся. Объекты страницы не могут существовать без объекта книги. Обратитесь к программе ниже.
Рисунок 03: Классный класс
Рисунок 04: Школьный класс
Рисунок 05: Основная программа для описания композиции
Согласно указанной выше программе, Класс имеет два свойства: name и numOfStudents. Школа - это собрание предметов Классной комнаты. В основном методе создаются два объекта Classroom. Они добавляются в «классы». Эти «классы» переданы школьному объекту. Наконец, имя класса и количество студентов печатаются путем итерации по коллекции. Если объект "Школа" разрушен, объекты "Класс" также будут уничтожены. Это пример композиции. Он также содержит отношение «имеет» и также подразумевает владение.
Какая связь между агрегированием и компоновкой в Java?
Агрегация и композиция - это два типа ассоциации, а композиция - это специализированный тип агрегации. Композиция - это подмножество агрегирования
В чем разница между агрегацией и компоновкой в Java?
Различать статью в середине перед таблицей
Агрегация против композиции в Java |
|
Агрегация - это связь между двумя объектами, которая описывает отношение «имеет». | Состав - это более конкретный тип агрегирования, предполагающий владение. |
Применение | |
Агрегация используется, когда один объект использует другой объект. | Композиция используется, когда один объект владеет другим объектом. |
Воздействие на объекты | |
В совокупности уничтожение объекта-владельца не повлияет на содержащий объект. | В композиции уничтожение объекта-владельца повлияет на содержащий объект. |
Резюме - Агрегация против композиции в Java
Агрегация и композиция - два понятия в ООП. Отношение «есть» описывает, что один объект может использовать другой объект. Агрегация - это ассоциация между двумя объектами, которая описывает отношение «есть». Состав - это более конкретный тип агрегирования, предполагающий владение. Разница между агрегацией и композицией в Java состоит в том, что если содержащийся объект может существовать без существования объекта-владельца, это агрегация, а если содержащийся объект не может существовать без существования объекта-владельца, это композиция.