Разликата между пасивен обект и активен обект в UML

...

UML помага за опростяване на представянето на вътрешната логика на програмата.

„Езикът за унифицирано моделиране“ или UML е език, предназначен да покаже как е организиран софтуерът; инженерите могат да използват UML за диаграмиране на потока от информация в програма, което им позволява да разберат по-добре как тя може да бъде опростена или променена. Когато моделира информационен поток, UML прави разлика между "активни обекти", които могат да инициират този поток, и "пасивни обекти", които не могат.

Обекти и класове

Когато става въпрос за така нареченото "обектно-ориентирано" програмиране, компютърните науки правят разлика между "обект" и "клас". Класът е а обобщено описание на набор от неща - като променливи или методи - докато "обектът" е "екземпляр" на този клас, със свой собствен уникален Имоти. Мислете за класовете като за план или шаблон; във физическия свят "приспособление за писане" може да се счита за клас, с примери "химикалка" или "оранжев пастел" за "обекти" от този конкретен тип клас.

Видео на деня

Обекти в UML

UML запазва подобно разграничение между класове и обекти и те са представени по същия начин; UML класовете съдържат широки описания, а UML обектите съдържат специфични стойности, които представляват екземпляри на тези описания. Следователно формално казано, "активен обект" в UML е всеки екземпляр на "активен клас" и подобно на "пасивен обект" е екземпляр на "пасивен клас" - в теоретичен смисъл бихте могли да считате тези термини за по същество взаимозаменяеми.

Активни обекти

В UML активните класове и следователно активните обекти съществуват в своя собствена нишка от операции и имат свое собствено адресно пространство. Ако изпълнението или кодовата дейност се мисли като поток, активните обекти могат да стартират или контролират този поток. С други думи, активните обекти са последователни и правят нещо: променят променливи, променят поведението на програмата и т.н. В UML активните класове и обекти се отличават с по-дебела граница от пасивните обекти.

Пасивни обекти

Пасивните обекти в UML обикновено нямат способността да променят или да започнат потока на изпълнение, защото трябва да изчакат друг обект да ги извика. Вместо това пасивните обекти обикновено се използват за съхраняване на информация и в много случаи тази информация може да бъде споделена между множество други обекти. Това може да позволи достъп до пасивни обекти едновременно, а не последователно. За да се гарантира, че данните, съдържащи се вътре, имат висока цялост, UML позволява на пасивните обекти да настояват за последователен достъп; ако две нишки се опитат да извикат един и същ последователен пасивен обект, този обект може да забави втората нишка, докато първата не приключи с нея.