Открытая коллекция знаний

OpenU.Ru

Справочник UML. Объектно-ориентированное проектирование.

exit action (действие при выходе)

Действие, осуществляемое при выходе из состояния.
См. entry action; run to completion; state machine; transition.

Семантика

К состоянию может прикрепляться действие при выходе. При выходе из состояния, каким бы образом он ни производился, действие при выходе выполняется после всех действий, прикрепленных к внутренним состояниям или переходам, и до любого действия, прикрепленного к внешним состояниям. Действия при выходе нельзя избежать. Оно должно быть выполнено перед тем, как управление уйдет из данного состояния.
Действия при входе и выходе не важны с семантической точки зрения (действие при выходе можно прикрепить ко всем исходящим переходам), однако с их помощью можно облегчить процедуру инкапсуляции состояния, после чего его внешнее устройство будет отделено от внутренней структуры. Эти действия позволяют определять действия инициализации и завершения состояния таким образом, чтобы их невозможно было избежать. Действия при входе и выходе особенно удобно использовать для обработки исключений, потому что они определяют те действия, которые должны выполняться, даже когда срабатывает исключение.

Нотация

Действие при выходе реализуется в программном коде с использованием синтаксиса для внутреннего перехода с фиктивным именем события exit (которое поэтому, нельзя использовать в качестве настоящего имени события).
exit / последовательность действий
К любому состоянию можно прикрепить только одно состояние при входе. Однако это действие может представлять собой последовательность действий, и, таким образом, общность не будет утеряна.

Обсуждение

Действие при выходе осуществляется для освобождения ресурсов, которое надо произвести при выходе из состояния. Наиболее важным видом использования действий при выходе является освобождение временного хранилища и других ресурсов, которые были заняты во время выполнения этого состояния (обычно с вложенными элементами).
Действие при входе и действие при выходе часто используются, имеете. Первое выделяет ресурсы, второе их освобождает. Тогда ресурсы освобождаются даже в том случае, если происходит исключение.

Алфавитный указатель