Разработчику > Работа с бизнес-объектами

Работа с бизнес-объектами

Система Finist-WebPlatform оперируя данными подразумевает использование бизнес-объектов. Бизнес-объекты являются базовыми сущностями системы. Именно они используются для хранения данных, для их логического связывания. Действия над объектами - это бизнес-процессы. Бизнес-процессы выполняются только над бизнес-объектами, а не произвольными экземплярами языковых сущностей, например классами языка C#. Аналогичным образом управление доступами настраивается исключительно на бизнес-процессы, бизнес-объекты и реквизиты бизнес-объектов.

Basis – это базовый абстрактный класс для объявления типов бизнес-объектов.

Использование бизнес-объектов.

Запрещено создавать экземпляры бизнес-объектов с помощью конструктора. Нельзя использовать ключевое слово new:

var formType = new FormType();

Все экземпляры бизнес-объектов должны создаваться с помощью фабрики классов бизнес-объектов Factory.

Для создания экземпляров бизнес-объектов должны использоваться методы CreateInitialized и Create:

FormType formType = Factory.CreateInitialized<FormType>();

или:

FormType formType = Factory.Create<FormType>();

При этом, если используется функция Factory.Create<T>(), то создается экземпляр объекта, который следует либо инициализировать, либо загрузить из источника данных, например из базы данных:

  • загрузка:
    formType.Load();
  • инициализация:
    formType.Initialize();

в случае вызова Factory.CreateInitialized<T>(), мы сразу получаем инициализированный экземпляр объекта, и не следует его повторно инициализировать функцией Initialize().:

Важно понимать, что если объект еще не инициализирован или не загружен (создан функцией Factory.Create<T>(),) то нежелательно выполнять какие-либо другие действия с этим экземпляром, например получать доступ к его реквизитам, свойствам, методам: formType.Name; или formType.GetProperty("Name"); и т.д. Смысл в том, что оперируя экземпляром объекта в дальнейшем, непременно возникнет необходимость его сохранить, а это невозможно сделать с неинициализированным объектом. Однако, в случае инициализации, будут утеряны все данные, которые были внесены в него до этого момента.