Junior — Middle
¿Cómo se realiza el enlace de la interfaz a una implementación concreta durante la ejecución del programa?
sobes.tech AI
Respuesta de la IA
En iOS, para enlazar la interfaz con una implementación específica en tiempo de ejecución, a menudo se utiliza el patrón de delegación o protocolos.
Un protocolo define un conjunto de métodos, y una clase concreta implementa ese protocolo. En tiempo de ejecución, el objeto de la interfaz hace referencia a un objeto que implementa el protocolo y llama a sus métodos. Esto permite cambiar la implementación sin modificar la interfaz.
Ejemplo en Swift:
protocol DataSource {
func fetchData() -> String
}
class RealDataSource: DataSource {
func fetchData() -> String {
return "Datos de la fuente real"
}
}
class ViewController {
var dataSource: DataSource?
func showData() {
if let data = dataSource?.fetchData() {
print(data)
}
}
}
let vc = ViewController()
vc.dataSource = RealDataSource() // enlace de implementación en tiempo de ejecución
vc.showData() // Imprimirá: Datos de la fuente real
De esta manera, la interfaz (protocolo) y la implementación se enlazan dinámicamente.