Фабричный шаблон и одиночные объекты в VBA - PullRequest
0 голосов
/ 15 апреля 2020

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

...