A Factory minta egy példányosítási tervezési minta, amely egy interfészt definiál az objektumok létrehozására, de lehetővé teszi az alosztályok számára a példányosított osztály típusának meghatározását.
A Factory minta fő célja a példányosítás logikájának elkülönítése a kliens kódtól. Így könnyen lehet új típusokat hozzáadni anélkül, hogy módosítani kellene az ügyfélkódot.
Egyszerű példa Java nyelven
interface Shape {
void draw();
}
class Circle implements Shape {
public void draw() {
System.out.println("Kör rajzolása");
}
}
class Square implements Shape {
public void draw() {
System.out.println("Négyzet rajzolása");
}
}
class ShapeFactory {
public Shape getShape(String type) {
if (type.equals("circle")) {
return new Circle();
} else if (type.equals("square")) {
return new Square();
}
return null;
}
}
class Main {
public static void main(String[] args) {
ShapeFactory factory = new ShapeFactory();
Shape shape1 = factory.getShape("circle");
shape1.draw();
}
}