SORU
30 Mayıs 2009, CUMARTESİ


Java statik fabrika metotları nelerdir?

"Statik fabrika" yöntem? bir Ne var

CEVAP
30 Mayıs 2009, CUMARTESİ


factory method pattern nesne oluşturma saklanması için bir yoldur. Fabrika bir yöntem olmadan, yalnızca sınıf constructor doğrudan çağrı: Foo x = new Foo(). Bu model ile, fabrika yöntemi çağırmak yerine: Foo x = Foo.create(). Kurucular dışında sınıf içinde aradı edilemez bu yüzden özel olarak işaretlenmiş, ve fabrika yöntemi ilk bir nesne olmadan çağrılabilir, böylece static olarak işaretlenmiş.

Bu model için bir kaç avantajı vardır. Fabrika birçok alt (ya da uygulayıcıları bir arayüzü) seçin ve bu dönüş. Bu şekilde arayan davranış parametreleri ile istenen, ya da potansiyel olarak karmaşık bir sınıfın olduğunu anlamaya kalmadan belirtebilirsiniz.

Başka bir avantajı Matthew ve James belirttiği gibi, bağlantıları gibi sınırlı bir kaynağa erişimi kontrol. Bu bir şekilde uygulamak pools of reusable objects - yerine bina, kullanarak, ve yerle bir nesne, eğer o inşaat ve yıkım pahalı işler belki daha mantıklı oluşturmak için onları bir kez ve onları geri dönüşüm. Fabrika yöntemi bir dönüş mevcut, kullanılmayan örneği itirazınız varsa vardır, ya da inşa halinde bir nesne sayısı Aşağıda bazı alt eşik, ya da bir istisna atar veya dönüş null Eğer yukarıdaki üst eşik.

Wikipedia maddesi gereğince, birden fazla fabrika yöntemleri de benzer değişken türleri farklı yorumlara izin ver. Normalde yapıcı tek bir signature verilen bir kurucu olacak olan Sınıf, aynı ada sahip. Fabrikalar aynı argüman türlerini kabul eden iki farklı yöntemleri var bu da demek oluyor ki bu kadar sınırlı değildir:

Coordinate c = Coordinate.createFromCartesian(double x, double y)

ve

Coordinate c = Coordinate.createFromPolar(double distance, double angle)

Bu da okunabilirlik, Rasmus notları yükseltmek için kullanılabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eddie Bravo

    Eddie Bravo

    17 EKİM 2006
  • Felice Musique

    Felice Musiq

    22 NİSAN 2014
  • jkimisyellow

    jkimisyellow

    6 Mayıs 2009