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.