Simple Factory Design Pattern

  • Simple Factory یک الگوی طراحی ساده‌ است که یک کلاس (معمولاً یک کلاس کمکی) دارد که نمونه‌های مختلف از یک یا چند کلاس را بر اساس ورودی‌های مختلف ایجاد می‌کند.
  • در Simple Factory، تمام منطق ساخت نمونه‌ها در یک کلاس (کلاس Factory) قرار دارد و کلاس‌های دیگر برای ساختن نمونه‌ها به این کلاس وابسته هستند.
  • Simple Factory عملکرد ایجاد نمونه‌ها را به یک کلاس مرکزی منتقل می‌کند و تکلیف ساخت نمونه‌ها را به این کلاس محول می‌کند.

به عنوان مثال، فرآیند پرداخت بانک با Simple Factory به صورت زیر می باشد:

// Product interface
interface Payment {
    void makePayment();
}

// Concrete Product 1
class BankPayment implements Payment {
    @Override
    public void makePayment() {
        System.out.println("Bank payment made.");
    }
}

// Concrete Product 2
class CreditCardPayment implements Payment {
    @Override
    public void makePayment() {
        System.out.println("Credit card payment made.");
    }
}

// Creator interface
interface PaymentFactory {
    Payment createPayment();
}

// Concrete Creator 1
class BankPaymentFactory implements PaymentFactory {
    @Override
    public Payment createPayment() {
        return new BankPayment();
    }
}

// Concrete Creator 2
class CreditCardPaymentFactory implements PaymentFactory {
    @Override
    public Payment createPayment() {
        return new CreditCardPayment();
    }
}

// Client code
public class Main {
    public static void main(String[] args) {
        PaymentFactory bankPaymentFactory = new BankPaymentFactory();
        Payment bankPayment = bankPaymentFactory.createPayment();
        bankPayment.makePayment();

        PaymentFactory creditCardPaymentFactory = new CreditCardPaymentFactory();
        Payment creditCardPayment = creditCardPaymentFactory.createPayment();
        creditCardPayment.makePayment();
    }
}

دیدگاهتان را بنویسید