Junior — Middle
Мо метавонед шарҳ диҳед, ки принсипи ислоҳоти вобастагиро дар барномасозии объектӣ чӣ маъно дорад?
sobes.tech AI
Ҷавоб аз AI
Принципи ислоҳоти вобастагиҳо (Dependency Inversion Principle, DIP) яке аз панҷ принсипи SOLID дар барномасозии объектӣ мебошад. Он мегӯяд:
- Модулҳои сатҳи баланд набояд аз модулҳои сатҳи паст вобаста бошанд. Ҳарду бояд аз абстраксияҳо вобаста бошанд.
- Абстраксияҳо набояд аз тафсилот вобаста бошанд. Тафсилотҳо бояд аз абстраксияҳо вобаста бошанд.
Ин маъно дорад, ки ба ҷои он, ки класс мустақиман иҷроишҳои мушаххасро созад ё истифода барад, бояд бо абстраксияҳо (масалан, интерфейсҳо ё протоколҳо) кор кунад. Ин қобилияти икмолро зиёд мекунад ва санҷишро осон мекунад.
Масал дар Swift (iOS):
protocol DataService {
func fetchData() -> String
}
class APIService: DataService {
func fetchData() -> String {
return "Маълумот аз API"
}
}
class ViewModel {
private let service: DataService
init(service: DataService) {
self.service = service
}
func load() {
print(service.fetchData())
}
}
let apiService = APIService()
let viewModel = ViewModel(service: apiService)
viewModel.load() // Натиҷа: Маълумот аз API
Ин ҷо, ViewModel аз абстраксияи DataService вобаста аст, на аз иҷроиши мушаххас APIService. Ин имкон медиҳад, ки ба осонӣ иҷроиши хизматрасониро иваз кардан мумкин аст, масалан, бо mock барои санҷишҳо.