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
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
zaten değerlendirme altında söz: varsa...
JS dönüştürmek için daha iyi bir yolu ...
Nasıl olmayan sabit bir referans geçic...
Java: nesne oluşturma &; iade&; boş bi...
Bir değişken, nesne ve referans arasın...