Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Metodo Factoria

He visto el codigo de implementacion de un método de factoría, pero, cual es su objeto esencial cuando utilizarlo o para que?

mayo 4, 2014 | Unregistered CommenterGerman D. Leon

En estos artículos hay buenas explicaciones con ejemplos de uso.

http://javarevisited.blogspot.com.es/2011/12/factory-design-pattern-java-example.html
http://java.dzone.com/articles/factory-method-pattern-java
http://howtodoinjava.com/2012/10/23/implementing-factory-design-pattern-in-java/
http://www.tutorialspoint.com/design_pattern/factory_pattern.htm

mayo 4, 2014 | Registered Commenterchoces

Sigue un ejemplo de uso de factory, que facilita la encapsulación de las clases, y ocultar la implementación.

La clase NewClass solo tiene getters, su constructor es private, sus propiedades solo se inicializan en el constructor, y no puede ser extendida: es lo mismo que si se declara final.

La clase NewClassBuilder solo tiene setters, su constructor también es private, y tampoco se puede extender.

Los métodos create en ambas son factory.

mayo 4, 2014 | Registered Commenterchoces

public class NewClass {

public static NewClass create(String cadena, int entero) {
return new NewClass(cadena, entero);
}

private final String cadena;
private final int entero;

private NewClass(String cadena, int entero) {
this.cadena = cadena;
this.entero = entero;
}

/**
* @return the cadena
*/
public String getCadena() {
return cadena;
}

/**
* @return the entero
*/
public int getEntero() {
return entero;
}
}

mayo 4, 2014 | Registered Commenterchoces

public class NewClassBuilder {

public static NewClassBuilder create() {
return new NewClassBuilder();
}
private String cadena;
private int entero;

private NewClassBuilder() {
}

public NewClassBuilder setCadena(String cadena) {
this.cadena = cadena;
return this;
}

public NewClassBuilder setEntero(int entero) {
this.entero = entero;
return this;
}

public NewClass createNewClass() {
return NewClass.create(cadena, entero);
}

}

mayo 4, 2014 | Registered Commenterchoces