[英]Is it considered bad practice/design to create 10s/100s of Guice Injectors?
考慮一個假設的應用程序:
問題:假設由於某種原因,無法通過使用工廠,構建器,創建者等工廠設計模式來解決上述問題:
new
) 在您描述的抽象級別上,這聽起來像是一個合理的解決方案,並且有助於某些良好的設計模式(例如,松散耦合和實例不變性)。 據我所知,Guice不會比針對那些復雜需求的任何同類解決方案帶來更大的內存泄漏或其他性能問題的威脅-只需留意所保留的引用,GC就可以完成工作。
到那時,如果您依賴於對對象進行垃圾收集,則可能要在Guice中創建單例對象時要小心。 聲明為對象@Singleton
(或asEagerSingleton
或toInstance
)不能作為垃圾回收,只要注射器可達,因為注射器有義務返回完全相同的情況下,如果它是不斷詢問一次。 在台式機VM中,獲取無狀態對象的多個實例可能會比較便宜,以便GC可以收集所有實例,而不是將對象聲明為永遠無法收集的單個實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.