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

  • AutoHotkey Tutorials

    AutoHotkey T

    29 Mayıs 2010
  • iNCH

    iNCH

    20 Temmuz 2009
  • jedimasterkyle

    jedimasterky

    11 ŞUBAT 2006