У класса активного объекта могут быть объявлены параметры класса. Параметры класса позволяют абстрагироваться от конкретных типов. С их помощью Вы можете настраивать Ваши активные объекты под конкретную задачу и таким образом существенно повышать гибкость Вашего класса активного объекта.
Вы можете изучить использование параметров класса на примере объектов Основной библиотеки, поскольку почти у каждого объекта этой библиотеки есть параметры класса. Рассмотрим, например, объект Delay. Этот объект используется для моделирования того, как проходящие через этот объект заявки задерживаются на заданный промежуток времени. Пусть в Вашей модели все заявки - экземпляры одного и того же класса Customer (унаследованного от базового класса Entity), у которого есть свои собственные поля. Предположим, что Вы хотите выполнить какие-то действия в коде динамического параметра Действие при выходе, например, сохранить время задержки этого объекта Delay в поле serviceTime (это поле задано в классе заявки Customer). Однако, хоть заявки в потоке теперь и будут типа Customer, объекты потоковой диаграммы будут продолжать считать их заявками типа Entity и не позволят явно обращаться к дополнительной функциональности класса Customer.
Чтобы разрешить доступ к полям нестандартного класса заявки в коде динамических параметров объектов потоковой диаграммы, Вам нужно указать имя нестандартного класса заявки в качестве Класса заявки этого объекта. Но вполне естественно, что Вы не хотите явно приводить заявки к их фактическому типу каждый раз, когда Вам нужно получить доступ к полям нестандартного класса в коде динамических параметров объекта.
Раньше в таком случае Вам пришлось бы написать ((Customer)entity).serviceTime = delayTime. Теперь же, если Вы знаете, что через объект Delay будут проходить только заявки класса Customer, Вы должны написать Customer в поле Класс заявки этого объекта Delay (так у этого объекта называется поле задания параметров класса). Тогда Вы сможете написать код entity.serviceTime = delayTime в параметре объекта Действие при входе. Объявив параметр класса у объекта Delay, Вы как бы говорите объекту, что переменная entity, доступная в динамических параметрах этого объекта, является экземпляром класса Customer, так что ее нестандартные поля (заданные в этом классе) будут доступны из кода напрямую.
Пожалуйста, обратите внимание, что если какие-то заявки в Вашем потоке заявок имеют тип Customer, а какие-то - скажем, Staff, то Вы должны оставить в качестве параметра класса (Класс заявки) значение по умолчанию (Entity), и самостоятельно анализировать класс поступающей заявки, написав, например if(entity instanceof Customer) ((Customer)entity).serviceTime = delayTime.
Чтобы объявить у
класса активного объекта параметры класса