Junior — Middle
Байланыштардын тескерисинче иштөө принциби менен байланышты иштетүүнүн айырмачылыктарын түшүндүрө аласызбы?
sobes.tech AI
AIден жооп
Тескери көзкараштык принциби (Dependency Inversion Principle, DIP) — бул SOLID принциптеринин бири жана мындай дейт:
- Жогорку деңгээлдеги модулдар төмөнкү деңгээлдеги модулдарга көзкараштык кылбашы керек. Экиси да абстракциялардан көзкараштык кылышы керек.
- Абстракциялар деталдардан көзкараштык кылбашы керек. Деталдар абстракциялардан көзкараштык кылышы керек.
Бул дизайн принциби коддун байланышын азайтууга жана ийкемдүүлүгүн арттырууга багытталган.
Тескери көзкараштык киргизүү (Dependency Injection, DI) — бул принципти практикалык жүзөгө ашыруучу үлгү же техника. DI дегенибиз — көзкараштык кылуучу объекттер (класс үчүн керек болгон объекттер) сырттан өткөрүлүп берилет, класс ичинде түзүлбөйт.
Мисал:
protocol Service {
func doSomething()
}
class RealService: Service {
func doSomething() { print("Кызматтын иши") }
}
class Client {
let service: Service
// Көзкараштык киргизүү конструктор аркылуу
init(service: Service) {
self.service = service
}
func execute() {
service.doSomething()
}
}
let service = RealService()
let client = Client(service: service)
client.execute()
Бул жерде DIP — бул идея, Client RealService конкреттүү ишке ашуусуна эмес, Service абстракциясына көзкараштык кылат. DI — бул конкреттүү ишке ашуусун сырттан Clientке өткөрүү жолу.
Жыйынтык:
- DIP — дизайн принциби.
- DI — бул принципти ишке ашыруу ыкмасы.