Sobes.tech
Junior — Middle

Dependency Injection жана кызмат издөөчүнүн үлгүсүнүн айырмасын түшүндүрө аласызбы?

sobes.tech AI

AIден жооп

Мамлекеттик көзөмөлдөө (DI) жана кызматтар локатору — эки да колдонулат тиркемеде көз карандычылыктарды башкаруу үчүн, бирок жакындашуу боюнча айырмаланат:

  • Көз карандычылыктарды киргизүү — көз карандычылыктар тыштан объектке өткөрүлөт (мисалы, куруучу же сеттер аркылуу). Бул көз карандычылыктарды ачык кылат жана тестирлөөнү жеңилдетет, анткени ишке ашырууларды оңой алмаштыруу мүмкүн.

  • Кызматтар локатору — объект өзү өз көз карандычылыктарын борборлоштурулган кызматтан (локатордон) сурайт. Бул көз карандычылыктарды жашырып, түшүнүүнү жана тестирлөөнү кыйындатышы мүмкүн.

Flutterдеги DI мисалы:

class ApiService {}

class UserRepository {
  final ApiService apiService;

  UserRepository(this.apiService);
}

Бул жерде, UserRepository сырттан ApiService алат.

Кызматтар локатору учурда, объект өзү глобалдык локаторго кайрылып, ApiService алуу үчүн.