Sobes.tech
Junior — Middle

Чӣ гуна ворид кардани объект дар Dagger барои ворид кардани вобастагиҳо анҷом дода мешавад?

sobes.tech AI

Ҷавоб аз AI

Дар Dagger, вуҳудкунии вобастагиро тавассути аннотацияҳо ва истеҳсоли коди худкор анҷом медиҳад.

Қадамҳои асосӣ:

  1. Таъриф кардани модул (@Module) — синфе, ки вобастагиро тавассути методҳое, ки бо @Provides нишон дода шудаанд, таъмин мекунад.

  2. Компонент (@Component) — интерфейсе, ки модулҳоро ва ҷойҳои вуҳудкунии вобастагиро пайваст мекунад.

  3. Вуҳудкунии (@Inject) — майдонҳо ё конструкторҳо, ки Dagger вобастагиро ба онҳо ворид мекунад.

Масали вуҳудкунии объект тавассути конструктор:

class Engine {
    @Inject
    Engine() {}
}

class Car {
    private final Engine engine;

    @Inject
    Car(Engine engine) {
        this.engine = engine;
    }
}

@Component
interface CarComponent {
    Car getCar();
}

Ин ҷо, Dagger ба таври худкор объект Engine-ро месозад ва онро дар Car вақте ки он тавассути CarComponent сохта мешавад, вуҳуд мекунад.

Бинобар ин, вуҳудкунии объектҳо дар Dagger тавассути аннотацияи @Inject анҷом дода мешавад ва тавассути компонентҳо ва модулҳо пайваст мешавад.