Aynı davranışı elde etmek için daha az karmaşık alternatifler varsa, geçerli nesneyi bir yöntem çağrısında geçirmek kötü bir uygulamadır .
Tanım olarak this, bir nesneden diğerine geçer geçmez çift yönlü bir ilişki oluşturulur .
Martin Fowler'ın Refactoring'den alıntı yapacak olursak:
Çift Yönlü İlişkilendirmeyi Tek Yönlü (200) Olarak Değiştirin
Çift yönlü ilişkilendirmeler kullanışlıdır, ancak bir bedeli vardır. Fiyat, iki yönlü bağlantıları sürdürmenin ve nesnelerin uygun şekilde oluşturulup kaldırılmasını sağlamanın ek karmaşıklığıdır. Çift yönlü ilişkilendirmeler birçok programcı için doğal değildir, bu nedenle genellikle bir hata kaynağıdırlar
...
İhtiyaç duyduğunuzda çift yönlü ilişkileri kullanmalısınız, ihtiyacınız olmadığında kullanmamalısınız. Çift yönlü bir ilişkinin artık ağırlığını çekmediğini görür görmez, gereksiz ucu bırakın.
Bu yüzden teorik olarak, geçmemiz gerektiğini anladığımızda alarm zilleri duymalıyız ve elimizdeki thissorunu çözmek için başka yollar düşünmek için gerçekten çok uğraşmalıyız. Elbette, sonunda çare olarak bunu yapmanın mantıklı olduğu zamanlar vardır.
Ayrıca, genel bir iyileştirme için kodunuzun daha uzun vadede yeniden düzenlenmesi sırasında tasarımınızı geçici olarak bozmak, 'kötü pratik şeyler' yapmak gerekir. (Bir adım geri, iki adım ileri).
Pratikte veba gibi çift yönlü bağlantılardan kaçınarak kodumun büyük ölçüde geliştiğini gördüm .