我正在考虑使用工厂模式在VBA应用程序中创建单例对象。到目前为止,VBA程序在这里和那里创建了许多相同类的实例,并且在完成这些实例后,它们已被删除。
我考虑过用对工厂方法的调用来替换实例创建/销毁代码。因此,我想出了放在模块中的VBA代码。
Public Function MyClassA() As Object
On Error GoTo ErrorHandler
If a Is Nothing Then
Set a = CreateObject("library.ClassA")
End If
Set MyClassA = a
Exit Function
ErrorHandler:
Set a = Nothing
MyClassA= Err.Description
End Function
由于VBA没有垃圾回收,因此在程序退出后删除实例的最佳方法是什么? 工厂的调用者如何知道它是最后一个使用实例的实例,应该如何使用? 删除实例? 那么处理错误呢?