DI и токены02 / 13

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()

Источники ↗

Block Puzzle · BlockPuzzleServices.ts↗Токены сервисов игры.Block Puzzle · StartBlockPuzzleSessionCommand.ts↗Запрос игрового сервиса по токену.