Sobes.tech
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 барои санҷишҳо.