Чӣ гуна ворид кардани объект дар Dagger барои ворид кардани вобастагиҳо анҷом дода мешавад?
sobes.tech AI
Ҷавоб аз AI
Дар Dagger, вуҳудкунии вобастагиро тавассути аннотацияҳо ва истеҳсоли коди худкор анҷом медиҳад.
Қадамҳои асосӣ:
-
Таъриф кардани модул (@Module) — синфе, ки вобастагиро тавассути методҳое, ки бо
@Providesнишон дода шудаанд, таъмин мекунад. -
Компонент (@Component) — интерфейсе, ки модулҳоро ва ҷойҳои вуҳудкунии вобастагиро пайваст мекунад.
-
Вуҳудкунии (@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 анҷом дода мешавад ва тавассути компонентҳо ва модулҳо пайваст мешавад.