Имена, которые вы даете элементам модели, играют большую роль, чем вам может показаться на первый взгляд. Если вы будете придерживаться общепринятых правил наименования, то это существенно упростит как процесс разработки модели, так и ее понимание при дальнейшем использовании. В этом разделе мы уделим внимание принятым в Java правилам наименований, которых мы рекомендуем вам придерживаться во всей вашей модели, а не только при написании Java кода.
В идеале любой случайный наблюдатель должен понять смысл элемента модели по его имени и в то же время при поиске элемента, выполняющего определенную функцию, у него должна быть возможность легко угадать его имя.
Вы никогда не должны использовать бессмысленные имена, такие, как a, b, x23, state1, event14. Имена, состоящие из одного символа, могут использоваться только в качестве имен временных “одноразовых” переменных, например, для индексов циклов. Избегайте аббревиатур, если только они не используются в обычной жизни чаще, чем сами полные названия, например: КПД, ROI, ARPU. Помните, что используя имя элемента в выражении или коде, вам не нужно будет печатать его полностью: эту работу сделает за вас Мастер подстановки кода AnyLogic, поэтому вы можете легко использовать длинные имена.
Имеет смысл разработать для ваших моделей единую систему наименований и придерживаться ее. Большие организации иногда стандартизуют соглашения о наименовании для всех своих проектов.
В приведенной ниже таблице приводятся рекомендации по наименованию различных типов элементов модели.
Элемент | Правила наименования | Примеры |
---|---|---|
Переменная Параметр Коллекция Табличная функция Статистика |
Первая буква может быть как строчной, так и заглавной (здесь мы ослабляем требования к наименованию); каждое входящее в составное имя слово должно начинаться с заглавной буквы. Имя должно быть существительным. Для имен коллекций используйте множественное число. Иногда добавление суффикса или префикса с именем типа элемента может помочь понять смысл элемента и избежать дублирования имен. Например, AgeDistribution может быть пользовательским распределением, заданным на основе данных, хранящихся в табличной функции AgeDistributionTable. |
rate Income DevelopmentCost inventory AgeDistribution AgeDistributionTable friends |
Функция |
Первая буква должна быть строчной, каждое входящее в составное имя слово должно начинаться с заглавной буквы. Имя должно быть глаголом. Если функция возвращает значение свойства объекта, ее имя должно начинаться с префикса get (или is, если она возвращает значение логического типа boolean). Если функция изменяет значение свойства объекта, то ее имя должно начинаться с префикса set. Чтобы сделать код более компактным, некоторые функции (такие как системные функции AnyLogic time() и date() или функция size() коллекций Java) префикса не имеют. |
resetStatistics getAnnualProfit goHome speedup getEstimatedROI setTarget inState isVisible isEnabled |
Аргумент функции Локальная переменная, объявленная в коде |
Имя должно быть по возможности коротким, начинаться со строчной буквы. Если состоит из нескольких слов, то каждое входящее в составное имя слово должно начинаться с заглавной буквы. Обычными именами для временных целых переменных являются i, j, k, m и n. |
cost sum total baseValue i n |
Константа Java | Имя пишется в верхнем регистре, составляющие составное имя слова разделяются символами подчеркивания _. | TIME_UNIT_MONTH |
Агенты: Тип агента Пользовательский Java класс Динамическое событие |
Первая буква обязательно должна быть заглавной, каждое входящее в составное имя слово также должно начинаться с заглавной буквы. Имя должно быть существительным, если только элемент не задает компонент модели, моделирующий процесс, и имеющий смысл действия — в этом случае имя может быть глаголом. |
Consumer Project UseNurse RegistrationProcess HousingSector PhoneCall Order Arrival |
Вложенный объект, т.e. экземпляр типа агента, включая библиотечные объекты |
Первая буква должна быть строчной, каждое входящее в составное имя слово должно начинаться с заглавной буквы. Для имен реплицированных объектов используйте множественное число. |
project consumers people doTriage registrationProcess stuffAndMailBill |
Динамические переменные: Накопитель Поток Вспомогательная переменная |
В моделях системной динамики очень часто используются длинные многословные имена переменных. Поскольку в Java и в AnyLogic имена не могут содержать пробелов, то вы должны использовать другие способы для разделения слов. Мы рекомендуем начинать каждое слово составного имени переменной с заглавной буквы. Использование подчеркиваний ”_” не рекомендуется, но допускается. |
BirthRate Population DrugsUnderConsideration TimeToImplementStrategies |
Событие (не динамическое) Диаграмма состояний Состояния Переход | Первая буква может быть как заглавной, так и строчной, каждое входящее в составное имя слово начинается с заглавной буквы. |
overflow at8AMeveryDay purchaseBehavior InWorkForce discard |
-
Как мы можем улучшить эту статью?
-