Categorías
Design Patterns Stories

Patrón de diseño de Java: Fábrica

1. La historia del patrón Factory

El patrón de diseño de fábrica se utiliza para crear un objeto basado en diferentes parámetros. El siguiente ejemplo trata sobre la creación de humanos en una fábrica. Si le pedimos a la fábrica un niño, la fábrica producirá un niño; si pedimos una niña, la fábrica producirá una niña. Según diferentes parámetros, la fábrica produce diferentes productos.

2. Diagrama de clases de patrones de fábrica

3. Código Java de patrón de fábrica

interface Human {
	public void Talk();
	public void Walk();
}
 
 
class Boy implements Human{
	@Override
	public void Talk() {
		System.out.println("Boy is talking...");		
	}
 
	@Override
	public void Walk() {
		System.out.println("Boy is walking...");
	}
}
 
class Girl implements Human{
 
	@Override
	public void Talk() {
		System.out.println("Girl is talking...");	
	}
 
	@Override
	public void Walk() {
		System.out.println("Girl is walking...");
	}
}
 
public class HumanFactory {
	public static Human createHuman(String m){
		Human p = null;
		if(m.equals("boy")){
			p = new Boy();
		}else if(m.equals("girl")){
			p = new Girl();
		}
 
		return p;
	}
}
  Patrón de diseño de Java: visitante

4. Patrón de diseño de fábrica utilizado en la biblioteca estándar de Java

Según un parámetro diferente, getInstance () devuelve una instancia diferente de Calendar.

java.util.Calendar - getInstance()
java.util.Calendar - getInstance(TimeZone zone)
java.util.Calendar - getInstance(Locale aLocale)
java.util.Calendar - getInstance(TimeZone zone, Locale aLocale)
java.text.NumberFormat - getInstance()
java.text.NumberFormat - getInstance(Locale inLocale)

Puede ver el código fuente de Calendario y Formato numérico en javased.com.

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *