Бизнес-сущности
Далее вы узнаете, как определять, разрабатывать и тестировать классы бизнес-сущности (Business Entity) представляющие бизнес-логику приложения OERA.
Вы узнаете:
- как определить класс бизнес-сущности с помощью класса интерфейса и как написать код для запуска класса бизнес-сущности в качестве «singleton»;
- как определять временные таблицы и наборы данных с помощью включаемых файлов и включать их в качестве элементов данных класса бизнес-сущности;
- как использовать условные операторы и итерацию в методах класса бизнес-сущности;
- как разрабатывать процедуры сервисных интерфейсов для бизнес-сущности;
- как тестировать классы бизнес-сущности с помощью фреймворка ABLUnit.
На предыдущем уроке вы узнали, как разработать базовый класс ABL. Теперь научитесь создавать класс Business Entity, который является частью уровня Business Components приложения OERA.
Бизнес-сущности приложения представляют пользователей, объекты и системы, которые участвуют в вариантах использования приложения. Например, бизнес-сущность клиента содержит данные и функциональные возможности, связанные с клиентами компании и размещёнными ими заказами. Бизнес-сущность клиента поддерживает такие варианты использования, как поиск клиента и связанных с ним заказов, или поиск определенного заказа, или поиск всех клиентов для определённого торгового представителя. Все эти варианты использования имеют дело как с данными о клиентах, так и с данными о заказах.
При разработке класса бизнес сущности необходимо учитывать:
- Элементы данных для бизнес-сущности.
- Поведение.
- Связи класса бизнес сущности с другими классами.
Элементы данных для бизнес-сущности
Для каждого элемента данных, который вы идентифицируете для бизнес-сущности, необходимо определить следующее:
- Будет ли доступ для чтения и записи к элементу данных общедоступным (public), частным (private) или защищённым (protected)?
- Будет ли элемент данных определён для экземпляра или он будет использоваться всеми экземплярами?
- Должны ли данные быть преобразованы, чтобы установить или получить своё значение?
- Какой тип данных будет хранить элемент данных?
- Бизнес-данные.
- Внутренние данные, используемые бизнес-сущностью.
Наилучшей практикой определения бизнес-данных для бизнес-сущности является использование ProDataSet (набор данных ABL).
Поведение бизнес-сущности
При разработке класса бизнес-сущности необходимо ответить на следующие вопросы, связанные с поведением класса:
- Какие конструкторы есть у класса? Какие параметры требуются для конструкторов?
- Какой набор методов необходим для поддержки пользователей? Каковы их имена и списки параметров? Какая бизнес-логика должна выполняться для метода? Какой доступ к методу будут иметь пользователи этого класса?
- Требуется ли бизнес-сущности деструктор?
В AVM, работающем на сервере приложений, должен быть только один экземпляр класса бизнес-сущности, потому что мы хотим, чтобы каждая AVM предоставляла услуги одному клиенту за раз.
Как класс бизнес-сущности связан с другими классами
При разработке класса бизнес-сущности вы должны подумать о том, как он соотносится с другими классами.
- Будет ли класс бизнес-сущности суперклассом для других классов бизнес-сущностей?
- Будет ли класс бизнес-сущности производным от суперкласса бизнес-сущности?
- Будет ли бизнес-сущность основываться на классе интерфейса?
- Как определяется класс интерфейса?
Рекомендуется, чтобы классы бизнес-сущностей основывались на классе интерфейса. Это позволяет стандартизировать общие методы для всех бизнес-сущностей в вашем приложении.