我正在研究使用此模式的项目
var businessEntity = new DAL().GetObject(id);
// do something with the business entity.
有没有人遵循这种模式?
这会导致任何内存管理问题吗?垃圾收集器的任何复杂情况?
由于
答案 0 :(得分:2)
它运作得很好。它将被收集得很好。根据实现和对象,在行的末尾将标记为要收集,或者businessEntity
超出范围。
答案 1 :(得分:1)
这是非常典型的代码,不会,它不会导致垃圾收集器出现任何问题。
对未命名对象的引用位于VM堆栈中(否则无法调用该方法),该对象位于GC的根集中。
答案 2 :(得分:0)
不,GC最终将清除DAL
对象,如果没有其他任何东西需要用它做,或者没有其他东西指向它。您有businessEntity
对象的引用,因此在引用无效之前GC不会触及它。
答案 3 :(得分:-1)
此对象将在businessEntry引用时生效,并在变量超出范围后的某个时间收集