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