Saya terlibat dalam diskusi pemrograman hari ini di mana saya membuat beberapa pernyataan yang pada dasarnya mengasumsikan secara aksiomatis bahwa referensi melingkar (antara modul, kelas, apa pun) umumnya buruk. Begitu saya selesai dengan nada saya, rekan kerja saya bertanya, "apa yang salah dengan referensi melingkar?"
Saya memiliki perasaan yang kuat tentang hal ini, tetapi sulit bagi saya untuk mengucapkan secara singkat dan konkret. Penjelasan apa pun yang mungkin saya buat cenderung bergantung pada item lain yang saya anggap juga aksioma ("tidak dapat digunakan dalam isolasi, jadi tidak dapat menguji", "perilaku tidak diketahui / tidak terdefinisi saat keadaan bermutasi pada objek yang berpartisipasi", dll. .), tetapi saya ingin mendengar alasan singkat mengapa referensi melingkar itu buruk yang tidak mengambil lompatan keyakinan seperti yang dimiliki otak saya sendiri, setelah menghabiskan berjam-jam selama bertahun-tahun menguraikannya untuk memahami, memperbaiki, dan memperluas berbagai bit kode.
Sunting: Saya tidak bertanya tentang referensi melingkar yang homogen, seperti yang ada dalam daftar yang tertaut ganda atau pointer-to-parent. Pertanyaan ini benar-benar bertanya tentang referensi melingkar "lingkup yang lebih besar", seperti libA calling libB yang memanggil kembali ke libA. Ganti 'modul' untuk 'lib' jika Anda mau. Terima kasih atas semua jawaban sejauh ini!