Junior — Middle
Obyektga yo'naltirilgan dasturlashda boshqa sinfni tashuvchi sinf yaratish mumkinmi?
sobes.tech AI
AIdan javob
Obyekt-orientatsiya dasturlashda boshqa sinf uchun qoplovchi (wrapper) sinf yaratish mumkin va ko‘p hollarda ishlatiladi. Bu sinf asl sinfning kodini o‘zgartirmasdan, uning xulq-atvorini inkapsulyatsiya qilish, kengaytirish yoki o‘zgartirish uchun xizmat qiladi.
Masalan, qoplovchi sinf loglash, kechiktirish yoki kirish nazoratini ichki sinf metodlariga qo‘shishi mumkin. Bu kompozitsiya tamoyili va "Dekorator" naqshini to‘g‘ri keladi.
Swift (iOS) misoli:
class Service {
func fetchData() -> String {
return "Ma’lumotlar"
}
}
class ServiceWrapper {
private let service: Service
init(service: Service) {
self.service = service
}
func fetchData() -> String {
print("fetchData chaqiruvini log qilish")
return service.fetchData()
}
}
let service = Service()
let wrappedService = ServiceWrapper(service: service)
print(wrappedService.fetchData())
Shu tarzda, qoplovchi sinf funksionallikni kengaytirishga yordam beradi, meros olish yoki asl sinfni o‘zgartirishsiz.