Modelul din fabrică este unul dintre cele mai utilizate modele de proiectare din Java. Acest tip de model de design face parte din modelul de creație, deoarece acest model oferă una dintre cele mai bune modalități de a crea un obiect.
În modelul Factory, creăm obiect fără a expune clientului logica de creare și ne referim la nou-creat obiect folosind o interfață comună.
Implementare
Vom crea o interfață Shape și clase concrete care implementează interfața Shape. O clasă din fabrică ShapeFactory este definită ca un pas următor.
FactoryPatternDemo, clasa noastră demo va folosi ShapeFactory pentru a obține un obiect Shape. Va transmite informații (CIRCLE / RECTANGLE / SQUARE) către ShapeFactory pentru a obține tipul de obiect de care are nevoie.
Pasul 1
Creați o interfață.
Shape.java
public interface Shape { void draw();}
Pasul 2
Creați clase concrete care implementează aceeași interfață.
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."); }}
Pasul 3
Creați o fabrică pentru a genera obiect de clasă concretă pe baza informațiilor date.
ShapeFactory.java
Pasul 4
Utilizați fabrica pentru a obține obiectul clasei concrete prin transmiterea unei informații precum tipul.
FactoryPatternDemo.java
Pasul 5
Verificați rezultatul.
Inside Circle::draw() method.Inside Rectangle::draw() method.Inside Square::draw() method.