design pattern, java, جاوا, دیزاین پترن

Factory پترن در جاوا (دیزاین پترن در جاوا)

Factory پترن در جاوا

در این قسمت تیم کدگیت را با آموزش Factory پترن در جاوا همراهی کنید. پیش نیاز این آموزش شامل موارد زیر است:

  1. آشنایی با شی گرایی
  2. آشنایی با Interface
  3. آشنایی با متد
  4. آشنایی با if
  5. دیزاین پترن

Creational Design Pattern

یکی از زیر شاخه های دیزاین پترن Creational Design Pattern هست. این پترن راهی برای ساخت اشیاست. وقتی از این الگو استفاده میشود که ما میخواهیم در برنامه خود از یک کلاس یک شی را بسازیم. اما برای بسیاری ممکن است ساخت شی بسیار ساده باشد و فقط با new کردن ما یک شی را بسازیم. اما hard code راه حل خوبی نیست!! زیرا ما بعضی اوقات در کد خود هویت یک کلاس را عوض کنیم و در این گونه اوقات ما باید از Creational Design pattern استفاده میکنیم.

Factory پترن در جاوا

Factory پترن یکی از پر کاربردترین الگوی های طراحی است. این پترن یکی از زیر شاخه های Creational Design Pattern است. هدف Factory پترن این است که یک interface یا کلاس Abstract بسازید ولی فرزندان تصمیم بگیرند چه شی ای را بسازند. ممکن است سر در گم کننده باشد به همین دلیل توضیح کوتاهی از این روش میدهیم.

فرض کنید شما مشتری هستید و یک محصولی را نیاز دارید ولی بجای اینکه خودتان این محصول را تهیه کنید(استفاده از new) به یک کارخانه مراجعه و از آن کارحانه محصولی که میخواهید را طلب میکنید. کارخانه ویژگی های محصول را از شما سوال و بعد از ساخت به شما میدهد.

مثال Factory پترن در جاوا

برای درک بیشتر Factory پترن در این قسمت یک مثال خواهیم زد. ما یک interface داریم به نام Shape . سه کلاس به نام Circle و Square و Rectangle این interface را implements میکنند. کد آنها به صورت زیر است:

public interface Shape {
     void draw();
}
public class Square implements Shape {

     @Override
     public void draw() {
          System.out.println("Inside Square::draw() method.");

     }

}
public class Rectangle implements Shape {

     @Override
     public void draw() {
          System.out.println("Inside Rectangle::draw() method.");

     }

}
public class Circle implements Shape {

     @Override
     public void draw() {
          System.out.println("Inside Circle::draw() method.");

     }

}

حالا نوبت به ساخت کارخانه است. ما این کلاس را ShapeFactory نامگذاری کردیم. کد این کلاس به صورت زیر است:

public class ShapeFactory {
     public Shape getShape(String shapeType) {
          if (shapeType == null) {
              return null;
          }
          if (shapeType.equalsIgnoreCase("CIRCLE")) {
              return new Circle();

          } else if (shapeType.equalsIgnoreCase("RECTANGLE")) {
              return new Rectangle();

          } else if (shapeType.equalsIgnoreCase("SQUARE")) {
              return new Square();
          }

          return null;
     }
}

برای تست کدهای بالا، کد main زیر را بزنید(این دقیقا همان مشتری است که گفته شد):

     public static void main(String[] args) {
          ShapeFactory shapeFactory = new ShapeFactory();

          Shape shape1 = shapeFactory.getShape("CIRCLE");

          shape1.draw();

          Shape shape2 = shapeFactory.getShape("RECTANGLE");

          shape2.draw();

          Shape shape3 = shapeFactory.getShape("SQUARE");

          shape3.draw();

     }

کلاس های Shape و Rectangle و Circle و Square دقیقا از الگوی Factory استفاده کردند یعنی یک interface داریم که ساخت اشیا به کلاس دیگر میرسد. اما کلاس ShapeFactory همان کارخانه مسئول ساخت اشیا است. Main ما نیز همان مشتری ما است.

نوشته های مشابه

6 دیدگاه در “Factory پترن در جاوا (دیزاین پترن در جاوا)

  1. محمد گفت:

    بسیار آموزنده و کاربردی بود،منتظریم تا بقیه قسمت های دیزاین پترن رو هم در سایتتون توضیح دهید

    1. ممنون از شما دوست گرامی

  2. کاربرساده گفت:

    آموزش های شما در رابطه با دیزاین پترن ها بسیار خوب هستند // ممنون از شما

  3. Sajjad گفت:

    سلام و عرض ادب، تشکر بابت آموزش های خوبتون، متاسفانه کد دیزاین پترن ها درون سایت RTL نشون داده میشن و ممنون میشم بررسی کنید

    1. سلام. در حال بروزرسانی سایت هستیم. بزودی تمام کدهای سایت اصلاح می گردد.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *