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

  • DetroitBORG

    DetroitBORG

    29 Temmuz 2008
  • sk8ingis4me

    sk8ingis4me

    16 Mart 2006
  • TheOtherMau5

    TheOtherMau5

    6 Mart 2012