Я использую Typhoon для внедрения зависимостей с iOS.
Я зарегистрировал класс ConfigProviderImpl
, от которого зависят другие классы. По сути, я хочу, чтобы метод loadConfig
вызывался в первый раз, когда ConfigProvderImpl
запрашивается другим объектом.
Я использовал внедрение зависимостей в других языках, и что-то подобное обычно можно было решить, создав экземпляр заранее, вызвав метод, а затем зарегистрировав сам экземпляр в контейнере, чтобы он уже был в правильном состоянии. В данный момент я использую Typhoon 1.6.9, и, похоже, у него нет возможности регистрировать экземпляры. Я также проверил вики для версии 2.0, и она по-прежнему не разрешает это.
На данный момент я использую:
[definition setBeforePropertyInjection:@selector(loadConfig)];
Но это вызывается каждый раз при запросе класса. Я понимаю, что мог бы использовать немного магии dispatch_once
, но мне просто интересно, есть ли более чистый способ?