report_problem

Delegación: El Problema del Código Repetitivo

El Problema

warning

Boilerplate Code

Interfaces con muchas funciones generan código repetitivo en cada implementación

sync_problem ¿Qué ocurre?

  • arrow_right Interface con 10+ funciones
  • arrow_right Solo necesitas cambiar 1 función
  • arrow_right Debes reimplementar las 10 funciones

trending_down Impacto negativo: Duplicación, errores, difícil mantenimiento

Ejemplo del Problema

description

Interface con muchas funciones

interface HerramientaDibujo {
    val color: String
    fun dibujarLinea()
    fun dibujarRectangulo()
    fun dibujarCirculo()
    fun seleccionar()
}
content_copy

Implementación con mucho código

class SesionCanvas(val herramienta: HerramientaDibujo) : HerramientaDibujo {
    override val color = "Azul" // Solo cambio esto
    
    // Debo reimplementar todas las funciones
    override fun dibujarLinea() { herramienta.dibujarLinea() }
    override fun dibujarRectangulo() { herramienta.dibujarRectangulo() }
    override fun dibujarCirculo() { herramienta.dibujarCirculo() }
    override fun seleccionar() { herramienta.seleccionar() }
}