Skip to content

Instantly share code, notes, and snippets.

@Charlyzzz
Created September 23, 2015 01:49
Show Gist options
  • Save Charlyzzz/24b92b466f0b78d47739 to your computer and use it in GitHub Desktop.
Save Charlyzzz/24b92b466f0b78d47739 to your computer and use it in GitHub Desktop.
// Tengo que asignarle los valores a los atributos del builder, y cuando digo
// ejecutar o contruir o build me devuelve una instancia con los valores que le puse
val builderDePerros = new PerroBuilder
builderDePerros.raza = "Perro Trompeta"
builderDePerros.edad = 2
val nuevoPerro = builderDePerros.build
println(nuevoPerro)
@Accessors
class Perro {
String raza
int edad
String duenio
}
@Accessors
class PerroBuilder {
// Pueden ser de clase o de instancia
String raza
int edad
def Perro build() {
var perro = new Perro
perro.raza = raza
perro.edad = edad
perro.duenio = "Cesar Milán"
perro
}
}
class FactoryPerro {
def static Perro nuevoFoxTerrier(int edad2) {
var perro = new Perro
perro.duenio = "Cesar Milán"
perro.edad = edad2
perro.raza = "Fox Terrier"
perro
}
def static Perro nuevoLabrador(int edad2) {
var perro = new Perro
perro.duenio = "Cesar Milán"
perro.edad = edad2
perro.raza = "Labrador"
perro
}
}
// Puedo tener muchos métodos que me devuelvan instancias con distintos
// valores que me sirvan. Ej: perro alemán, perro salchicha.
class Programa {
def static void main(String[] args) {
var perro = FactoryPerro.nuevoFoxTerrier(2)
var perro2 = FactoryPerro.nuevoLabrador(10)
println(perro)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment