Програмування композиція, life-prog

Композиція в програмуванні або ж Об'єктна композиція. також Агрегація і включення розуміють створення об'єктів існуючих класів як елементів інших класів. Про композиції також часто говорять як про «ставлення приналежності» за принципом у «у машини є корпус, колеса і двигун».

Вкладені об'єкти нового класу зазвичай оголошуються закритими, що робить їх недоступними для прикладних програмістів, які працюють з класом. Крім того, творець класу може змінювати ці об'єкти, не порушуючи роботи існуючого клієнтського коду. Крім того, заміна вкладених об'єктів на стадії виконання програми дозволяє динамічно змінювати її поведінку. Механізм успадкування такою гнучкістю не володіє, оскільки для похідних класів встановлюються обмеження, що перевіряються на стадії компіляції.

На відміну від спадкування де тип відносин між породженим об'єктом і батьківським є Is-a зв'язком, тобто якщо об'єкт кішка породжений від тварина. то кішка є тварина (cat is a pet), то в композиції тип відносин є Has -a є має (машина має двигун).

UML позначення

В UML позначається як зарисований ромб і суцільна лінія. Це завжди позначається 1 або 0. 1, як не більше ніж один об'єкт за раз може мати відношення до іншого об'єкту.

Більш загальна форма, Агрегація, зображується, як порожній ромб і суцільна лінія.

Схожі статті