Dependency Injection и токены
Получим игровой сервис по токену.
Токен — ключ, по которому контейнер находит объект. В Block Puzzle команда запуска партии передаёт токен Gameplay в getSceneService и получает игровой сервис. Ниже показаны только нужные строки из BlockPuzzleServices.ts и StartBlockPuzzleSessionCommand.ts.
// BlockPuzzleServices.ts
export class BlockPuzzleServices {
static readonly Gameplay = DiTokens.service<BlockPuzzleGameplayService>(
'BlockPuzzleGameplayService',
);
}
// StartBlockPuzzleSessionCommand.ts
this.getSceneService(BlockPuzzleServices.Gameplay).startSession();
ТокенBlockPuzzleServices.Gameplay
ЗапросgetSceneService передаёт токен контейнеру
Готовый сервисКоманда вызывает startSession()