Junior — Middle
É permitido criar uma classe portadora de outra classe na programação orientada a objetos?
sobes.tech IA
Resposta da IA
Criar uma classe envolvente (wrapper) para outra classe na programação orientada a objetos é permitido e frequentemente utilizado. Essa classe serve para encapsular, ampliar ou modificar o comportamento da classe original sem alterar seu código.
Por exemplo, uma classe envolvente pode adicionar logging, caching ou controle de acesso aos métodos da classe interna. Isso corresponde ao princípio de composição e ao padrão "Decorador".
Exemplo em Swift (iOS):
class Service {
func fetchData() -> String {
return "Dados"
}
}
class ServiceWrapper {
private let service: Service
init(service: Service) {
self.service = service
}
func fetchData() -> String {
print("Log de chamada ao fetchData")
return service.fetchData()
}
}
let service = Service()
let wrappedService = ServiceWrapper(service: service)
print(wrappedService.fetchData())
Assim, a classe envolvente ajuda a ampliar a funcionalidade sem herança nem alteração da classe original.