Sobes.tech
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.