Sobes.tech
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ă.