Junior — Middle
Este permis să creați o clasă purtătoare a altei clase în programarea orientată pe obiecte?
sobes.tech AI
Răspuns de la AI
Crearea unei clase wrapper (înveliș) pentru o altă clasă în programarea orientată pe obiecte este permisă și frecvent utilizată. Această clasă servește pentru încapsulare, extindere sau modificare a comportamentului clasei originale fără a-i modifica codul.
De exemplu, o clasă wrapper poate adăuga jurnalizare, caching sau control al accesului la metodele clasei interne. Acest lucru corespunde principiului de compoziție și pattern-ului "Decorator".
Exemplu în Swift (iOS):
class Service {
func fetchData() -> String {
return "Date"
}
}
class ServiceWrapper {
private let service: Service
init(service: Service) {
self.service = service
}
func fetchData() -> String {
print("Jurnalizare apel fetchData")
return service.fetchData()
}
}
let service = Service()
let wrappedService = ServiceWrapper(service: service)
print(wrappedService.fetchData())
Astfel, clasa wrapper ajută la extinderea funcționalității fără moștenire și fără a modifica clasa originală.