Objektumelvű Programozás

Factory minta

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.

Factory minta diagramja
A Factory minta struktúrája
Forrás: https://refactoring.guru/design-patterns/factory-method
További részletek

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();
    }
}