SORU
3 Ocak 2010, Pazar


Kurucu Beyannamesi veya örnek değişkenleri oluşturmak gerekir?

Her iki yaklaşım için herhangi bir avantajı var mı?

Örnek 1:

class A {
    B b = new B();
}

Örnek 2:

class A {
    B b;

    A() {
         b = new B();
    }
}

CEVAP
3 Ocak 2010, Pazar


  • fark yok örnek değişken başlatma aslında derleyici tarafından(lar) kurucu konur
  • ilk varyant daha okunabilir olur
  • ilk varyant ile özel durum işleme alamazsınız
  • ayrıca da yapıcı koymak(ler) derleyici ile olan başlatma bloğu vardır:

    {
        a = new A();
    }
    

Sun's explanation and advice Kontrol edin

this tutorial:

Alan tanımlamalar, ancak, herhangi bir yöntemi bir parçası değildir, ifadeleri olarak idam edilemez bu yüzden. Bunun yerine, Java derleyici otomatik olarak örnek alan başlatma kodu oluşturur ve yapıcı koyar veya sınıf için kurucular. Başlatma kodu alan başlatıcı alanlar daha önce ilan edilen başlangıç değerleri kullanmak anlamına gelir kaynak kodunda göründüğü sırada bir kurucu, eklenir.

Ayrıca, isteyebilirsiniztembel başlatılamadısenin alan. Bir alan başlatılıyor pahalı bir işlem olduğu durumlarda, ihtiyaç duyulan en kısa sürede başlatmak olabilir:

ExpensiveObject o;

public ExpensiveObject getExpensiveObject() {
    if (o == null) {
        o = new ExpensiveObject();
    }
    return o;
}

Ve sonunda Bill ile belirttiği gibi), bağımlılık yönetimi iyiliği için, daha iyi olurönlemeksınıf içinde new operatör her yerde kullanma. Bunun yerine, Dependency Injection tercih - yani izin kullanarak bir başkası (başka bir sınıf/çerçeve) oluşturmak ve sınıf bağımlılıkları enjekte.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BetterCoder

    BetterCoder

    17 Aralık 2012
  • Dopelives

    Dopelives

    30 Temmuz 2009
  • ImBluecams

    ImBluecams

    25 Kasım 2012