我有兩個類,RecordSet和Record。 RecordSet有一個通用列表(記錄)。給自己分配一個對象是個好主意嗎?
我可以通過調用我的RecordSet.AddRecord(ObjRecord)函數來添加對象到列表中,該函數返回RecordSet。當列表的計數爲200時,會發生一些處理,並返回一個新的RecordSet對象,否則將返回本身,並且應用程序可以繼續將Record對象添加到列表中。
我的問題是,直到垃圾收集掃描時,纔會有200個RecordSet對象。這是一個好主意嗎?
Public Class RecordSet
Private lstRecords As New List(Of Record)
Public Function AddRecord(SomeVariable) AS RecordSet
lstRecords.Add(New Record())
If lstRecords.Count = 200 Then
Me.ProcessTheRecords()
Return New RecordSet()
Else
Return Me
End If
End Function
Private Sub ProcessTheRecords()
'Do stuff in here
End Sub
Private Class Record
Public Sub New()
End Sub
End Class
End Class
然後在我的應用程序調用:
所有的Dim objRecordSet AS New RecordSet
For Each VariableName In SomeList
objRecordSet = objRecordSet.AddRecord(VariableName)
Next
'Process the remaining objects in objRecordSet here.
這聽起來像一個糟糕的設計。 – SLaks 2013-02-08 15:42:07
您正在從添加中返回全新的空記錄集,因此對舊文檔的引用正在丟失。存儲某些東西並丟失密鑰充其量等同於根本不存儲它。更糟糕的是,浪費代碼,cpu週期和系統內存。 – tucuxi 2013-02-08 15:46:20
這似乎是一個更適合於Programmers.SE或codereview.SE的問題 – 2013-02-08 15:52:55