mirror of
https://github.com/gromlab-ru/slm-design.git
synced 2026-08-22 15:30:16 +03:00
32 lines
2.4 KiB
Markdown
32 lines
2.4 KiB
Markdown
# Жизненный цикл Level 1
|
||
|
||
> Пояснение нормативной модели владения ресурсами Level 1.
|
||
|
||
Жизненный цикл является частью ответственности модуля. Файл, компонент, провайдер или точка входа фреймворка могут технически создавать и останавливать ресурс, но архитектурным владельцем остаётся модуль.
|
||
|
||
## Связанные правила
|
||
|
||
- [`SLM-L1-MODULE-R011`](../rules/level-1.md#slm-l1-module-r011)
|
||
- [`SLM-L1-LIFECYCLE-R013`](../rules/level-1.md#slm-l1-lifecycle-r013)
|
||
|
||
## Граница ресурса
|
||
|
||
Для ресурса определяются:
|
||
|
||
- модуль-владелец;
|
||
- место создания;
|
||
- момент начала работы;
|
||
- область жизни;
|
||
- допустимое число экземпляров;
|
||
- способ остановки и очистки.
|
||
|
||
Ресурс начинает работу не раньше начала своей области жизни и не остаётся активным после её завершения. Подписки, слушатели, таймеры, наблюдатели, запросы и соединения рассматриваются одинаково, если требуют явного завершения или отмены.
|
||
|
||
## Реализация
|
||
|
||
Очистку может выполнять сам модуль, компонент, провайдер или фреймворк. Способ реализации не меняет владельца и не переносит ответственность в технический файл.
|
||
|
||
Одиночный экземпляр на всё приложение допустим только тогда, когда модуль действительно владеет областью жизни приложения или процесса. Размещение экземпляра на уровне файла само по себе этого не доказывает.
|
||
|
||
Точка входа `app` может запускать или подключать ресурс через публичный API импортируемого модуля, но не становится его владельцем.
|