Junior — Middle
Je povolené vytvárať triedu nosiča inej triedy v objektovo orientovanom programovaní?
sobes.tech AI
Odpoveď od AI
Создавање класе-обвивке (wrapper) за другу класу у објектно-оријентисаном програмирању је дозвољено и често се користи. Та класа служи за инкапсулацију, проширење или промену понашања оригиналне класе без измене њеног кода.
На пример, класа-обвивка може додати логовање, кеширање или контролу приступа методама унутрашње класе. Ово одговара принципу композиције и шаблону "Декоратор".
Пример у Swift (iOS):
class Service {
func fetchData() -> String {
return "Подаци"
}
}
class ServiceWrapper {
private let service: Service
init(service: Service) {
self.service = service
}
func fetchData() -> String {
print("Логовање позива fetchData")
return service.fetchData()
}
}
let service = Service()
let wrappedService = ServiceWrapper(service: service)
print(wrappedService.fetchData())
Овај начин помаже у проширењу функционалности без наслеђивања и без измене оригиналне класе.