Sobes.tech
Junior — Middle

Megengedett-e másik osztály hordozó osztályának létrehozása az objektumorientált programozásban?

sobes.tech MI

Válasz az MI-től

Objektumorientált programozásban másik osztályhoz tartozó wrapper osztály létrehozása megengedett és gyakran használt. Ez az osztály az eredeti osztály viselkedésének inkapszulálására, bővítésére vagy módosítására szolgál anélkül, hogy megváltoztatná annak kódját.

Például egy wrapper osztály naplózást, gyorsítótárazást vagy hozzáférés-ellenőrzést adhat az belső osztály metódusaihoz. Ez megfelel a kompozíció elvének és a "Díszítő" mintának.

Swift (iOS) példa:

class Service {
    func fetchData() -> String {
        return "Adatok"
    }
}

class ServiceWrapper {
    private let service: Service

    init(service: Service) {
        self.service = service
    }

    func fetchData() -> String {
        print("fetchData hívás naplózása")
        return service.fetchData()
    }
}

let service = Service()
let wrappedService = ServiceWrapper(service: service)
print(wrappedService.fetchData())

Így a wrapper osztály segít a funkcionalitás bővítésében anélkül, hogy öröklődést alkalmaznánk vagy az eredeti osztályt módosítanánk.