Я думаю об использовании фабричного шаблона для создания одноэлементных объектов в моем приложении 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 нет сборки мусора, каков наилучший способ удаления экземпляра после завершения работы программы? Как вызывающий на фабрике узнает, что он последний использует экземпляр и что он должен удалить экземпляр? Как насчет обработки ошибок?