Sobes.tech
Junior — Middle

Dagger колдонуу кайсы SOLID принципине тиешелүү?

sobes.tech AI

AIден жооп

Dagger-дин колдонулушу, SOLIDдин Dependency Inversion Principle (D) принциби менен байланыштуу.

Бул принцип мындай дейт:

  • Жогорку деңгээлдеги модулдар төмөнкү деңгээлдеги модулдарга түздөн-түз көз каранды болбошу керек.
  • Экиси да абстракциялардан көз каранды болушу керек.
  • Абстракциялар деталдарга көз каранды болбошу керек, деталдар абстракциялардан көз каранды болушу керек.

Dagger бул принцибин ишке ашырууга жардам берет, ал автоматтык түрдө көз карандылыктарды инжекторлоо механизмин камсыз кылат, ал абстракциялар аркылуу (интерфейстер же абстракттуу класстар) компоненттердин байланышын азайтат жана коддун тестирлөө жана ийкемдүүлүгүн жогорулатат.

Колдонуу мисалы:

@Component
interface AppComponent {
    void inject(MyActivity activity);
}

class MyActivity {
    @Inject
    MyRepository repository;

    void onCreate() {
        DaggerAppComponent.create().inject(this);
        repository.loadData();
    }
}

Бул жерде, MyActivity түздөн-түз MyRepository түзбөйт, тескерисинче, көз карандылыктарды инжекторлоо аркылуу алат, бул Dependency Inversion Principlesине ылайыктуу.