I WeakReference, _components bir Collections.synchronizedList sahiptir; , senkronize blok içerisindeki dönüş değeri kötü tarzı gibi görünüyor. Gerçekten önemli mi?
Ben derleyici şikayet bekliyor, aşağıdaki gibi bir şeyler yazdı:public boolean addComponent2(Component e) {
synchronized (_components) {
return _components.add(new WeakReference<Component>(e));
}
}
Ama derleyici mükemmel memnun olduğunu. List.add() öğesinin TRUE değerini döndürdüğünü unutmayın. Tamam, senkronize edilmiş bir bloktan herhangi bir çıkış, kilidi serbest bırakır, ancak bu LOOK garip değil mi? Bu, bir döngüde geri dönüşün kullanılmasına benzeyen, blokta bir "delik" gibi bir şey.
Böyle kodu muhafaza mutlu olabilir mi? Birsynchronized
bloğun içine dönen yanlış bir şey yoktur
(aslında, ilkel senkronizasyon bloklarını kullanarak kendimi bulmuyorum ama yine de) bunu baştan yapmanın bazı yararları olabilir. Yalnızca senkronizasyon bloğuna sahipseniz ve daha sonra bazı ekstra kodların eklenmesi gerekiyor ancak bu kod senkronizasyon gerektirmiyorsa, siz bunu zaten kırmışsınız demektir. Kırılmazsa, gelecekteki devirler, daha kolay olduğundan monitörü gereksiz yere bağlayabileceğinden, senkronizasyon bloğunun içindeki ekstra kodu ekleyebilir. Bu yüzden hala formun içinde geri dönüyorum, ama gelecek için bazı küçük faydalar var. – corsiKa
@corsiKa: * bu değişiklik gerekiyorsa sadece parası gelecek * için var. bu zorunlu değildir, o zaman IMO * okuma * kod biraz daha zor bütün zaman yapar. –