Создать экземпляр FileSystemObject как Singleton?

У меня есть сценарий с кучей подпрограмм и функций, которые используют FileSystemObject, и в настоящее время у меня есть локальная переменная objFileSystem в каждой процедуре. Моя первоначальная мысль заключалась в том, чтобы сделать процедуры несвязанными и повторно используемыми, но теперь мне интересно, не лучше ли мне использовать единую глобальную область видимости objFileSystem?

  1. Я понимаю, что это не будет настоящим синглтоном (будучи VBScript), это всего лишь вопрос об одном общем объекте и нескольких выделенных объектах, что похоже на синглтон.

  2. У меня есть рекурсия в нескольких местах, и мне любопытно, меняет ли это вообще передовую практику?

  3. У меня похожее состояние с объектом реестра, и мне интересно, одинакова ли лучшая практика или эти два ведут себя по-разному?

  4. Я не (слишком) озабочен производительностью или управлением памятью, но я хотел бы понять, почему любая передовая практика.


person user2649829    schedule 04.08.2013    source источник


Ответы (1)


Если вы действительно повторно используете функции/процедуры в другом месте и стремитесь к строгой инкапсуляции: придерживайтесь локального создания этих объектов. В противном случае используйте экземпляры singleton. Это относится к FileSystemObject и, возможно, к «объекту реестра» (при условии, что вы имеете в виду здесь объект WMI).

person Ansgar Wiechers    schedule 04.08.2013