เป็นแนวทางปฏิบัติที่ไม่ดีในการส่งผ่านวัตถุปัจจุบันในการเรียกใช้เมธอดหากมีทางเลือกที่ซับซ้อนน้อยกว่าเพื่อให้บรรลุพฤติกรรมเดียวกัน
ตามความหมายการเชื่อมโยงแบบสองทิศทางจะถูกสร้างขึ้นทันทีที่thisมีการส่งผ่านจากวัตถุหนึ่งไปยังอีกวัตถุหนึ่ง
หากต้องการอ้างอิง Refactoring โดย Martin Fowler:
เปลี่ยน Bidirectional Association เป็น Unidirectional (200)
การเชื่อมโยงแบบสองทิศทางมีประโยชน์ แต่มีราคา ราคาคือความซับซ้อนที่เพิ่มขึ้นในการดูแลลิงก์สองทางและทำให้แน่ใจว่าออบเจ็กต์ถูกสร้างและลบออกอย่างเหมาะสม การเชื่อมโยงแบบสองทิศทางไม่ใช่เรื่องปกติสำหรับโปรแกรมเมอร์จำนวนมากดังนั้นจึงมักเป็นที่มาของข้อผิดพลาด
...
คุณควรใช้การเชื่อมโยงแบบสองทิศทางเมื่อคุณต้องการ แต่ไม่ใช่เมื่อคุณไม่ทำ ทันทีที่คุณเห็นการเชื่อมโยงแบบสองทิศทางไม่ได้ดึงน้ำหนักอีกต่อไปให้ทิ้งส่วนท้ายที่ไม่จำเป็น
ดังนั้นในทางทฤษฎีเราควรจะได้ยินเสียงระฆังปลุกเมื่อเราพบว่าเราจำเป็นต้องผ่านไปthisและพยายามอย่างมากที่จะคิดหาวิธีอื่นในการแก้ปัญหาในมือ แน่นอนว่ามีบางครั้งที่ในที่สุดก็มีเหตุผลที่จะทำเช่นนั้น
นอกจากนี้ยังจำเป็นต้องทำให้การออกแบบของคุณเสียหายชั่วคราวโดยทำ 'สิ่งที่ไม่ดี' ในระหว่างการปรับโครงสร้างโค้ดของคุณในระยะยาวเพื่อการปรับปรุงโดยรวม (ถอยหลังหนึ่งก้าวไปข้างหน้าสองก้าว)
ในทางปฏิบัติฉันพบว่าโค้ดของฉันได้รับการปรับปรุงอย่างมากโดยหลีกเลี่ยงการเชื่อมโยงแบบสองทิศทางเช่นโรคระบาด