Депо не создает трамваи. И "команды" исходят от диспетчера.
Проще обратиться к объектам реального мира.
можно скомпоновать
Прототип для создания Трамваев, Поездов (в php это clone)
А в Депо поместить - Пул объектов
Ну а дальше зависит от того, будет ли обратная связь у Трамваев с Депо и с другими Трамваями.
Примеры
тут