Java: Fabrika Tasarımı-Yöntem Modeli | Nesneye Yönelik Tasarım | Tasarım desenleri

Yayınlanan: 2013-06-28

Fabrika Tasarımı-Yöntem Modeli Nesneye Yönelik Tasarım

Factory Design Pattern, Creational Design modellerinden biridir ve JDK'da ve Spring MVC ve Struts gibi çerçevelerde yaygın olarak kullanılır. Fabrika yöntemi kalıbı , fabrika kavramını uygulamak için nesne yönelimli bir yaratıcı tasarım kalıbıdır ve oluşturulacak nesnenin tam sınıfını belirtmeden nesneler (ürünler) oluşturma sorunuyla ilgilenir. Bu kalıbın özü şudur: “ Bir nesne oluşturmak için bir arayüz tanımlayın, ancak arayüzü uygulayan sınıfların hangi sınıfın başlatılacağına karar vermesine izin verin. Factory yöntemi, bir sınıfın somutlaştırmayı ".alt sınıflara ertelemesine " izin verir.

Java Tasarım Kalıpları

Önce Java'da fabrika deseninin nasıl uygulanacağını öğrenelim. Bu kalıbı uygulamak için 5 sınıf oluşturacağız.

  • Süper Sınıf (CrunchfiyCompany.java)
    • Fabrika modelindeki süper sınıf, bir arayüz, soyut sınıf veya normal bir Java sınıfı olabilir. Örneğimiz için, test amacıyla geçersiz toString() yöntemiyle soyut sınıf olarak süper sınıfımız var.
  • Alt Sınıf1 (CrunchifyEbay.java)
    • Sınıfın CrunchfiyCompany sınıfını genişlettiğine dikkat edin.
  • Alt Sınıf2 (CrunchifyGoogle.java)
    • Sınıfın CrunchfiyCompany sınıfını genişlettiğine dikkat edin.
  • Fabrika Sınıfı (CrunchifyFactoryPattern.java)
    • Artık süper sınıflarımız ve alt sınıflarımız hazır olduğuna göre fabrika sınıfımızı yazabiliriz.
    • Fabrika sınıfını Singleton tutabiliriz veya alt sınıfı statik olarak döndüren yöntemi tutabiliriz.
    • Giriş parametresine bağlı olarak farklı alt sınıfların oluşturulduğuna ve döndürüldüğüne dikkat edin.
  • Test Sınıfı (CrunchifyFactoryPatternTest.java)
    • Yukarıdaki fabrika modeli uygulamasını kullanan Basit Test istemci programı.

Diğer okumalı:

  • Java'da Thread-Safe ve Hızlı Singleton Uygulaması
  • Java'da Daemon Thread nedir? Örnek Ekli

Fabrika Kalıbını Kullanan Diğer Örnekler?

  • java.util.Calendar, ResourceBundle ve NumberFormat getInstance() yöntemleri Fabrika modelini kullanır.
  • Boolean, Integer vb. sarmalayıcı sınıflarında valueOf() yöntemi.

Fabrika Modelinin Faydaları:

  • Birden fazla alt sınıfı olan bir süper sınıfımız olduğunda ve girdiye bağlı olarak alt sınıflardan birini döndürmemiz gerektiğinde kullanılır. Bu model, bir sınıfın istemci programından fabrika sınıfına somutlaştırılmasının sorumluluğunu üstlenir.
  • Fabrika modeli, uygulama yerine arayüz koduna yaklaşım sağlar.
  • Fabrika modeli, gerçek uygulama sınıflarının somutlaştırılmasını istemci kodundan kaldırarak onu daha sağlam, daha az bağlantılı ve genişletilmesi kolay hale getirir. Örneğin, istemci programı bundan habersiz olduğu için PC sınıfı uygulamasını kolayca değiştirebiliriz.
  • Fabrika modeli, kalıtım yoluyla uygulama ve istemci sınıfları arasında soyutlama sağlar.

Dezavantajları:

  • Fabrika bir nesne ailesi için kullanılmalıdır. Sınıflar ortak temel sınıfı veya arabirimi genişletmiyorsa, fabrika tasarım şablonunda kullanılamazlar.

Tüm Java Web Geliştirme, Spring MVC eğitimlerinin listesi.