Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Рогоза М.Є., Рамазанов С.К., Мусаєва Е.К. Ч.2.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
12.03 Mб
Скачать

9.3.2. Спадкоємність активних об’єктів

Оскільки класи активних об’єктів є звичайними Java™ класами, вони можуть успадковуватися один від одного. Будь-який клас ак­тив­ного об’єкта безпосередньо або транзитивно успадковується від класу ActiveObject. Клас ActiveObject задає загальні для всіх активних об’єк­тів властивості. Поля і методи класу ActiveObject описані в Довіднику класів AnyLogic™.

Проте є одне обмеження. Серед класів активного об’єкта і його підкласів має бути тільки один клас активного об’єкта, що зге­не­ро­ваний середовищем AnyLogic™, усі інші повинні бути оголошені вручну, в зовнішніх файлах (рис. 4.90).

Рис. 4.90. Спадкоємність класів активних об’єктів

змінні

змінні

змінні

змінні

змінні

змінні

змінні

змінні

AnyLogic™ підтримує реплікацію об’єктів – дуже простий і зруч­ний спосіб створення періодично структурованих систем об’єктів до­вільного розміру і топології, таких як вектор, мережа, тор, гіперкуб, кільце і т. д. AnyLogic™ звільняє від необхідності створення таких структур об’єктів уручну, шляхом створення і графічного з’єднання великої кількості об’єктів (останній підхід є втомливим і дозволяє створювати тільки системи з постійною кількістю об’єктів). Натомість можна просто створити реплікований об’єкт, який являтиме собою відразу декілька активних об’єктів одного класу.

За допомогою реплікації об’єктів можна:

  • створювати системи, що масштабуються, задаючи кількість еле­ментів реплікованого об’єкта за допомогою параметра;

  • створювати складні структури об’єктів з нетривіальними топо­логіями, встановлюючи будь-які типи з’єднань між елементами реплікованого об’єкта як графічно, так і програмно;

  • моделювати системи зі структурою, що динамічно змінюється, додаючи і видаляючи елементи реплікованого об’єкта під час роботи моделі.

9.3.3. Анімація реплікованого об’єкта

Анімація AnyLogic™ створюється з анімацій активних об’єктів, які розташовуються згідно з ієрархією об’єктів у моделі. Можна відобра­жати на анімації об’єкта-власника анімацію реплікованого об’єкта, що показує:

  • анімації всіх своїх елементів, або

  • анімацію тільки якихось певних своїх елементів.

Щоб створити анімацію реплікованого об’єкта, потрібно створити анімацію для класу цього об’єкта і помістити її на анімацію об’єкта, що містить цей об’єкт (об’єкта-власника). Вкладена анімація є прямо­кутником, що відображає вміст анімації або всіх, або якихось певних елементів реплікованого об’єкта.

Якщо до моменту створення реплікованого об’єкта анімація для класу цього об’єкта вже буде створена, то фігура вкладеної анімації автоматично з’явиться на анімаційній діаграмі класу, що містить вкла­дений об’єкт.

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

Вам може також доведеться додавати анімацію вкладеного об’єкта вручну в тому випадку, якщо Ви хочете відображати на анімації тіль­ки якісь певні елементи цього реплікованого.

Є два способи додавання анімацій реплікованого об’єкта на ані­ма­цію класу, що містить цей об’єкт:

  • якщо ви хочете відображати анімації всіх елементів реплі­ко­ва­ного об’єкта, то ви маєте задати в якості імені об’єкта вкладеної анімації ім’я реплікованого об’єкта, наприклад cars, server. По­зи­ції різних вкладених анімацій зазвичай задаються пара­мет­ра­ми анімації класу реплікованого об’єкта;

  • якщо ви хочете відображати анімації тільки якихось певних елементів реплікованого об’єкта, то ви можете нарисувати стіль­ки фігур вкладених анімацій, скільки вам потрібно, і задати ім’я певного елемента цього об’єкта як ім’я об’єкта, анімація якого буде показана на анімації, у формі <ім’я вкладеного об’єкта>-<номер елемента реплікованого об’єкта>, наприклад cars-5, server-0 і т. д. Місцеположення такої анімації на анімації об’єк­та-власника зазвичайно задається безпосередньо у властивостях фігури вкладеної анімації.

Активний об’єкт може мати параметри. Параметри зазвичай ви­користовуються для задавання характеристик об’єкта. Можна задати різні значення параметрів для різних об’єктів одного і того ж класу, що потрібне в тих випадках, коли об’єкти мають однакову поведінку, але у них відрізняються деякі характеристики.

Значення параметрів можна змінювати під час роботи моделі. За необхідності Ви можете задати дії, які повинні виконуватися при зміні значення параметра, написавши обробник цієї події.

Параметр може бути пов’язаний з параметром вкладеного об’єкта. У цьому випадку значення параметра передаватиметься пов’язаному з ним параметру вкладеного об’єкта.

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