El patrón de fábrica es uno de los patrones de diseño más utilizados en Java. Este tipo de patrón de diseño se incluye en el patrón de creación, ya que este patrón proporciona una de las mejores formas de crear un objeto.
En el patrón de fábrica, creamos un objeto sin exponer la lógica de creación al cliente y nos referimos al recién creado objeto usando una interfaz común.
Implementación
Vamos a crear una interfaz Shape y clases concretas implementando la interfaz Shape. Una clase de fábrica ShapeFactory se define como el siguiente paso.
FactoryPatternDemo, nuestra clase de demostración usará ShapeFactory para obtener un objeto Shape. Pasará información (CIRCLE / RECTANGLE / SQUARE) a ShapeFactory para obtener el tipo de objeto que necesita.
Paso 1
Cree una interfaz.
Shape.java
public interface Shape { void draw();}
Paso 2
Cree clases concretas implementando la misma interfaz.
Rectangle.java
public class Rectangle implements Shape { @Override public void draw() { System.out.println("Inside Rectangle::draw() method."); }}
Square .java
public class Square implements Shape { @Override public void draw() { System.out.println("Inside Square::draw() method."); }}
Circle.java
public class Circle implements Shape { @Override public void draw() { System.out.println("Inside Circle::draw() method."); }}
Paso 3
Cree una fábrica para generar un objeto de clase concreta en base a la información dada.
ShapeFactory.java
Paso 4
Use Factory para obtener un objeto de clase concreta pasando una información como el tipo.
FactoryPatternDemo.java
Paso 5
Verifique la salida.
Inside Circle::draw() method.Inside Rectangle::draw() method.Inside Square::draw() method.