Visual Basic 6. Руководство разработчика

       

Свойство экземпляра класса


Как можно заметить, классы имеют несколько свойств. В этой главе обсужда­ются только два из них: свойство Name (Имя) и свойство Instancing (Экземпляр). Свойство Instancing определяет, где и как приложения могут использовать класс. Здесь обсуждаются его шесть возможных значений.

Private

Закрытые объекты доступны только компонентам из этого же приложения. При разработке класса, который не будет использоваться в других проектах или не нужно делать его доступным для других разработчиков, установите свойство Instancing в Private

SingleUse

Эта установка применима только к программным компонентам ActiveX EXE. Сервер ActiveX EXE — это исполняемый файл (приложение), который может обслуживать одного или более клиентов. Если свойство Instancing проекта сервера установлено в SingleUse, то для каждого клиента, который вызывает объекты класса, запускается новый экземпляр сервера. Такая установка является неэффективным методом создания и использования объектов, и ее обычно избегают. Если для каждого клиента нужен новый экземпляр сервера, то используется сервер, организованный в виде компонента ActiveX DLL.

MultiUse

Эта установка противоположна Private и может использоваться только с программными компонентами. Это позволяет одному экземпляру сервера обеспечивать столько объектов, сколько их требуется клиентским приложениям. По умолчанию в каждом вновь создаваемом проекте ActiveX EXE или ActiveX DLL свойство Instancing установлено в MultiUse.

GlobalSingleUse

Это значение создает глобальный объект со свойством SingleUse. Если вы собираетесь использовать глобальный объект, создайте его со значением SingleUse свойства Instancing, чтобы все клиенты, вызывающие его, могли быть обслужены одним сервером. Это свойство доступно как в компонентах ActiveX EXE, так и ActiveX DLL.

GlobalMultiUse

Эта установка доступна как в проектах ActiveX EXE так и ActiveX DLL, но ее следует использовать как можно реже. Объекты представленные компонентом со свойством GlobalMultiUse, доступны всей системе и могут использоваться любым приложением так, как если бы это были системные компоненты. Visual Basic предусматривает общесистемные объекты, называемые глобальными объектами. Например, объекты Screen (Экран) и Printer (Принтер) являются глобальными, поскольку не нужно добавлять на них ссылки в приложениях, которые их исполь­зуют. Если имеется объект, о котором важно знать остальной части системы (а не только приложениям, которые его используют) то установите свойство Instancing в GlobalMultiUse.


PublicNotCreatable

Объекты класса с этим значением свойства Instancing могут быть доступны из других приложений, но не могут быть созданы. Что это значит? Объекты класса PublicNotCieatable должны быть вначале созданы другим компонентом в этом же объекте а затем могут быть доступны через объекты этого компонента. Например, если есть класс, который реализует операции с базой данных, один из объектов, предоставляемых классом представляет собой базу данных. Другой объект в проекте представляет собой таблицу в базе данных. Если разрешить разработчику непо средственныи доступ ко второму объекту, то он может попытаться открыть таблицу минуя открытие базы данных. Но если создать класс, который предоставляет объект Database (База данных) как MultiUse, и класс который выставляет объект Table (Таблица) как PublicNotCreatable, то тогда, сделав ссылку на объект, который пред­ставляет таблицу, как только открывается база данных, разработчик получит прямой доступ к объекту Table, но только после его создания.

Остальные свойства объекта класс описаны коротко и не используются в этой книге.

•  DataBindingBehavior. Определяет, будет ли класс работать как потребитель данных (класс, который соединяется с базами данных и поставляет записи и/или поля записей ведущему приложению).

•  DataSourceBehavior. Определяет, будет ли класс работать как источник данных (т е. другие классы из элементов управления могут быть привязаны к этому классу).

•  MTSTranslationMode. Позволяет определить, будет ли класс поддерживать Microsoft Transaction Server. Эта установка используется для классов, которые предполагается выполнять на сервере и которые будут одновременного выпол­нять несколько транзакций. Если одна из транзакций не отрабатывается, то все они отменяются.


Содержание раздела