SORU
2 AĞUSTOS 2012, PERŞEMBE


Yapımı daha önce nesne gönderme referans

Bizim uygulamalardan biri aşağıdaki kodu gördüm:

public class First()
{
      private Second _second;

      public First()
      {
          _second = new Second(this);
          // Doing some other initialization stuff,
      }

}

public class Second
{
    public Second(First f)
    {
    }
}

First() kurucu, sınıfın bir referans First() gönderiyoruz o kadar da kötü değilöncetam olarak inşa edilmiştir? Nesne sadece tam kontrol mantığı yapıcı çıktıktan sonra yapılmış olduğunu düşünüyorum.

Yoksa bu iyi mi?

CEVAP
2 AĞUSTOS 2012, PERŞEMBE


Tam inşa edilmeden ÖNCE? benim sorum, İlk() yapıcısı, Birinci sınıf bir başvuru gönderiyoruz o kadar da kötü değil()

Biraz.olabilirbir sorun olduğu kesin.

Second kurucusadecetutar daha sonra kullanmak için bir referans, o kadar da kötü değil. Eğer, diğer taraftan, Second kurucu First geri arar:

public Second(First f)
{
    f.DoSomethingUsingState();
}

... ve durumu henüz olmadı, o zaman tabii ki Çok Kötü bir Şey olurdu. Eğer bir arama yaparsanızsanalFirst yöntem o zaman daha da kötü olabilir - hatta çalıştırmak için şansı olmamış olan bazı kodunu çağırma bitebileceğiniherhangi birkurucu gövdesi henüz değişken başlatıcılar idam edilmiş olacaktır rağmen).

Özellikle readonly alanlar önce başka bir değer ile ve daha sonra görülebilir...

Biraz daha bilgi verebilir 11 ** Bir süre önce.

Elbetteolmadanbu tür işler yapmak, çok zor iki taraf için başvuru değişmez iki nesne oluşturmak için

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Magidson

    Eric Magidso

    4 Ocak 2009
  • Pocketnow

    Pocketnow

    14 EKİM 2007
  • UKF

    UKF

    2 Aralık 2009