SORU
2 Temmuz 2010, Cuma


Bir Kurucu kullanmak için zaman ve getınstance() yöntemi (statik fabrika metotları)?

  1. Ne zaman ve nasıl bir Yapıcı kullanmalıyız

    Foo bar = new Foo();
    
  2. Ve ne Zaman ve nasıl kullanmalıyız getınstance() (statik fabrika metotları)

    Foo bar = Foo.getInstance();
    

Peki bu ikisi arasındaki fark şu ki, ben her zaman ama 2 şekilde kullanma zamanı 1 yol kullanımı??

CEVAP
2 Temmuz 2010, Cuma


Herkes soru aslında bence olsa tekiz odaklanmak gibi görünüyorvs statik fabrika metotları yapıcı.

Bu aslındaMadde 1: kurucular yerine statik fabrika metotları göz önünde BulundurunJoshua Bloch tarafından Effective Java:

Madde 1: kurucular yerine statik fabrika metotları göz önünde Bulundurun

İzin vermek için bir sınıf için normal bir kendisi istemci bir örneği elde etmek için bir public kurucu sağlamak. Gereken başka bir tekniği var her programcı bir parçası olmak toolkit. Bir sınıf bir halkla sağlayabilir statik fabrika metodusadece bir döndüren statik bir yöntem olan , sınıf örneği. Burada bir basit. Boolean örnek (kutulu ilkel tipi, ilkel sınıf boolean). Bu yöntem çevirir bir içine ilkel bir boolean değeri Boolean referans nesne:

public static Boolean valueOf(boolean b) {
    return b ? Boolean.TRUE : Boolean.FALSE;
}

Statik fabrika metodu olduğunu unutmayın bu aynı değilFabrika Yöntemi desenTasarım Desenleri [Gamma95, s. 107]. Statik fabrika Yöntem Bu öğe olarak nitelendirdi. doğrudan eşdeğerTasarım Desenleri.

Bir sınıf müşterileri ile sağlayabilir statik fabrika yerine, ya da metotlar ek olarak, kurucular. Fabrika statik bir yöntem sağlar ortak bir kurucu yerine sahiptir hem avantajları ve dezavantajları.

Avantajları (kitaptan alıntı):

  • Statik fabrika metotları bir avantajı, kurucular aksine, onların isimleri var.
  • Statik fabrika metotları ikinci bir avantajı, kurucular aksine, çağrılan onlar yeni bir nesne her zaman oluşturmak için gerekli değildir.
  • Statik fabrika metotları üçüncü bir avantaj, kurucular aksine, dönüş türü herhangi bir alt türü olan bir nesne döndürür.
  • Statik fabrika metotları dördüncü bir avantaj parametreli tür örnekler oluşturma ayrıntı azaltır.

Dezavantajları (hala kitaptan alıntı):

  • Sadece statik fabrika metotları sağlayan ana dezavantajı bu. kamu veya korumalı kurucular olmadan sınıflar alt edilemez.
  • Statik fabrika metotları ikinci bir dezavantaj değil kolayca diğer statik yöntemler ayırt edilebilir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • RFS Dan

    RFS Dan

    22 Temmuz 2014
  • SignatureSeries

    SignatureSer

    24 Aralık 2006
  • Tina Chen

    Tina Chen

    26 Mayıs 2012