Композиция предметов

Оглавление1 Композиция объекта1.1 Определение и примеры композиции1.2 Отличия от других концепций1.3 Моделирование в UML1.4 Специальные формы композиции1.5 Хронология композиции на […]

Композиция объекта

  • Определение и примеры композиции

    • Композиция – это объединение объектов в составные объекты с инкапсуляцией. 
    • Композиция отличается от структур данных, которые не обеспечивают инкапсуляцию. 
    • Композиция может включать группу связанных объектов, таких как набор или последовательность. 
  • Отличия от других концепций

    • Делегирование обогащает композицию, переадресуя запросы к внутренним компонентам. 
    • В объектно-ориентированных языках типы делятся на составные и несоставные, а композиция рассматривается как отношение между типами. 
    • Изучение отношений “часть-целое” называется мереологией. 
    • Композиция отличается от подтипирования, которое добавляет детали к общему типу данных. 
    • В языках программирования, основанных на прототипах, объекты могут динамически наследовать поведение прототипа. 
  • Моделирование в UML

    • В UML объекты могут быть концептуально составлены независимо от реализации. 
    • Существуют четыре способа компоновки объектов в UML: свойство, ассоциация, агрегация и композиция. 
    • Агрегация отличается от обычной структуры тем, что не подразумевает права собственности. 
    • Композиция обычно реализуется путем содержания одного объекта другим. 
  • Специальные формы композиции

    • Сдерживание – это композиция, которая используется для хранения нескольких экземпляров составного типа данных. 
    • Рекурсивная композиция – это объекты, которые могут быть составлены рекурсивно. 
    • Составной узор – это объектно-ориентированный дизайн, сочетающий рекурсивную композицию и сдерживание. 
  • Хронология композиции на разных языках

    • C называет запись struct или структурой, в то время как объектно-ориентированные языки часто хранят свои записи внутри объектов. 
    • COBOL был первым широко распространенным языком, который поддерживал записи. 
    • Common Lisp предоставляет структуры и классы, а Fortran 77 имеет массивы, но не формальные определения записей. 
    • Ada 95 и Ada 2012 добавили поддержку проверки замены с помощью общеклассовых контрактов. 

Полный текст статьи:

Композиция предметов — Википедия

Оставьте комментарий

Прокрутить вверх