Skip to content

Latest commit

 

History

History
39 lines (25 loc) · 1.19 KB

README.md

File metadata and controls

39 lines (25 loc) · 1.19 KB

Builder Pattern

Pattern Languages

Motivación

¿Ya te llegó aquel día en el que construir un objeto se convirtió en un largo inicializador con un tedioso proceso de escribir uno a uno todos lo parametros de entrada? A mi si.

Y la verdad que no quedaba ni bonito, ni elegante, ni me terminaba de gustar por más que diera saltos de línea en Objective C. En Swift ya ni os cuento.

Pero con cada problema llega un patrón.

Idea

Separar la construcción compleja de un objeto de su representación.

Problema

Pasar de:

var spiderman = SuperHero(name: "Spiderman", superPower: "Spider Powers", alterEgo: "Peter Parker")

a:

let details = SuperHeroBuilder { builder in
    
    builder.name = "Spiderman"
    builder.superPower = "Spider Powers"
    builder.alterEgo = "Peter Parker"
}

var spiderman = SuperHero(builder: details)

Solución

Dentro del playground podréis ver la implementación de este pequeño ejemplo de una forma corta, elegante y fácil de entender. Separando el constructor de un súper héroe de su propia representación.