Определение статического элемента данных
Как вы узнали ранее, вы должны убедиться, что в AVM работает только один экземпляр бизнес-сущности, чтобы одновременно можно было обслуживать только одного клиента. Один экземпляр класса в AVM называется синглтоном. Далее вы реализуете бизнес-сущность как синглтон, определяя статический элемент данных и статический конструктор для класса.
Элементы данных переменных и свойств также могут быть статическими элементами данных. Статический элемент данных используется для хранения одного экземпляра бизнес-сущности в AVM. Этот элемент данных должен быть общедоступным.
Статический конструктор ведёт себя иначе, чем обычный конструктор. Вы не можете вызвать статический конструктор в своём коде. Когда приложение запускается, автоматически вызываются статические конструкторы для всех бизнес-сущностей. Вы должны добавить код в эти статические конструкторы, чтобы создать экземпляр бизнес-сущности и назначить его статическому элементу данных. Любой код, работающий в AVM, имеет доступ к этому статическому элементу данных. Вы не определяете параметры для статического конструктора.
Определение статического элемента данных
В своём классе бизнес-сущности вы определяете общедоступный статический элемент данных для представления одного экземпляра бизнес-сущности, работающего в AVM.
Синтаксис для определения статического свойства как элемента данных:
define public static property <property-name> as {<type-name>} [no-undo] [<visibility>] get [(): <body of get that returns property> end get]. [<visibility>] set[(<param>): <body of set that sets property> end set].
Элемент синтаксиса |
Описание |
<property-name> | Имя элемента данных. |
<type-name> | Встроенный тип ABL или пользовательский тип. |
<visibility> | Public, Private или Protected. |
<param> | Значение, которое используется для установки свойства. Оно должно соответствовать типу свойства. |
Пример.
Пример определения общедоступного статического элемент данных Instance для класса CustomerBE . Этот элемент данных будет использоваться для хранения единственного экземпляра класса CustomerBE в AVM. Обратите внимание, что вы должны указать полное имя класса для типа, включающего пакет, BusinessEntity.CustomerBE.
define public static property Instance as BusinessEntity.CustomerBE no-undo get. private set.