處理循環依賴
回答
有上Restructure101如何用於去除循環依賴,「纏結」,從Junit的博客文章here從洛桑士它是如何用來從ICEfaces的去除纏結一個presentation。
至於關於循環依賴關係是否不好的爭論,我建議您閱讀Bob叔叔的Solid Principles。
聲明:我爲Headway Software爲Restructure101的開發人員工作。
並不總是要避免循環依賴。我會避免他們在大,但保持在一個系統的小角落。在大型數據訪問層和J2EE應用程序循環依賴的表示層中,我會說這是一件壞事,因爲這意味着所有內容都必須一次性編譯,並且測試是噩夢。但是,如果列表數據結構及其迭代器類型是循環依賴,那就沒有問題了。
由於Findbugs建議使用接口來打破循環依賴。我爲至少一種類型的圓引入了一個接口,並使其他類在各處都使用接口。你需要示例代碼嗎?
+1。憑藉明確的優勢,良好的設計方法是很好的。例如,在一個集合和它的(惰性)迭代器的特定情況下,簡單地引入一個新的接口來打破這個循環是過度的。但是,我會爭辯說:只有在可以將所有依賴關係都包含爲內部或嵌套類的情況下,才使用循環依賴關係。事實上,通過以這種方式使用內部類,您可以通過使用內部類所保留的隱式容器引用來避免許多循環依賴性警報。 – 2011-10-05 16:30:31
通過使用內部類的隱式引用,您可以避免使用工具警告,但是您的代碼仍然具有循環引用。但正如我所說,我建議儘可能減少圈子 - 不要不惜一切代價避免它們。通過使用內部類,你可以做到這一點。 – jmg 2011-10-06 08:21:21
- 1. C++如何處理循環依賴?
- 2. 處理對繼承的循環依賴
- 3. 處理循環依賴關係
- 4. 在循環中處理順序依賴
- 5. 循環依賴
- 6. 循環依賴
- 7. 循環依賴++
- 8. 循環依賴
- 9. 循環依賴
- 10. 循環依賴
- 11. 循環依賴C++
- 12. Autofac循環依賴
- 13. MVC - 循環依賴
- 14. Maven循環依賴?
- 15. Javascript循環依賴
- 16. C循環依賴
- 17. GraphQL循環依賴
- 18. 循環依賴angularjs
- 19. C2061 - 循環依賴
- 20. sqlalchemy循環依賴
- 21. 循環依賴QThread
- 22. Relativelayout循環依賴
- 23. Django循環依賴
- 24. ES6循環依賴
- 25. 環路與依賴循環
- 26. 循環依賴表的依賴順序
- 27. 依賴注入解決循環依賴
- 28. Python相互依賴類(循環依賴)
- 29. 與依賴注入循環依賴
- 30. 依賴注入與循環依賴
循環引用首先出現了什麼問題?你爲什麼想要打破它們?也許你應該在你的問題中指出這一點。 – Mecki 2011-03-30 17:59:06
好吧,我不知道...假設是我想避免的反模式!併爲教育目的,檢查不同的設計可能性。 – tropicana 2011-03-30 18:03:02
循環參考是一種反模式?誰說的? Java GC對於實例來說沒有問題(只有使用純引用計數的GC纔會有這樣的問題),編譯器在編譯時沒有問題,除了必須同時編譯兩個類以外,所以編譯器能夠解決依賴關係。順便說一句,你錯過了一個重要的標籤:java。我會爲你修復標籤。 – Mecki 2011-03-31 11:48:21