Різниця між пасивним об’єктом та активним об’єктом в UML

...

UML допомагає спростити представлення внутрішньої логіки програми.

«Уніфікована мова моделювання» або UML — це мова, розроблена для того, щоб показати, як організовано програмне забезпечення; інженери можуть використовувати UML для діаграми потоку інформації в програмі, дозволяючи їм краще зрозуміти, як її можна спростити або змінити. При моделюванні інформаційного потоку UML розрізняє "активні об'єкти", які можуть ініціювати цей потік, і "пасивні об'єкти", які не можуть.

Об'єкти та класи

Коли справа доходить до так званого «об’єктно-орієнтованого» програмування, інформатика розрізняє «об’єкт» і «клас». Клас - це а узагальнений опис набору речей, таких як змінні або методи, тоді як "об'єкт" є "екземпляром" цього класу зі своїми унікальними властивості. Думайте про класи як про план або шаблон; у фізичному світі «засоби для написання» можна вважати класом із «ручкою» або «помаранчевим олівцем» прикладами «об’єктів» цього конкретного типу класу.

Відео дня

Об'єкти в UML

UML зберігає подібні відмінності між класами та об'єктами, і вони представлені однаково; Класи UML містять широкі описи, а об'єкти UML містять конкретні значення, які представляють екземпляри цих описів. Таким чином, формально кажучи, "активний об'єкт" в UML - це будь-який екземпляр "активного класу" і так само "пасивний об'єкт» — це екземпляр «пасивного класу» — у теоретичному сенсі ви можете вважати ці терміни по суті взаємозамінні.

Активні об'єкти

В UML активні класи, а отже, і активні об’єкти існують у власному потоці операцій і мають власний адресний простір. Якщо виконання або кодова діяльність розглядати як потік, активні об’єкти можуть запускати цей потік або керувати ним. Іншими словами, активні об’єкти є послідовними і щось роблять: змінюють змінні, змінюють поведінку програми тощо. В UML активні класи та об’єкти відрізняються більш товстими межами, ніж пасивні об’єкти.

Пасивні об'єкти

Пасивні об'єкти в UML, як правило, не мають можливості змінювати або починати процес виконання, оскільки вони повинні чекати, поки інший об'єкт їх викличе. Натомість пасивні об’єкти зазвичай використовуються для зберігання інформації, і в багатьох випадках ця інформація може бути спільною між кількома іншими об’єктами. Це може дозволити отримувати доступ до пасивних об’єктів одночасно, а не послідовно. Щоб переконатися, що дані, що містяться всередині, мають високу цілісність, UML дозволяє пасивним об’єктам наполягати на послідовному доступі до них; якщо два потоки намагаються викликати один і той самий послідовний пасивний об’єкт, цей об’єкт може відкласти другий потік, поки перший не завершить його.