Бизнес-объект
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| (не показаны 28 промежуточных версий 2 участников) | |||
| Строка 1: | Строка 1: | ||
| − | Если попытаться выразить сущность платформы Гедымин в одном словосочетании, то этим словосочетанием будет '''бизнес-объект'''. Именно бизнес-объекты отвечают за слово "быстрый" | + | Если попытаться выразить сущность платформы Гедымин в одном словосочетании, то этим словосочетанием будет '''бизнес-объект'''. Именно бизнес-объекты отвечают за слово "быстрый" в слогане "средство '''быстрой''' разработки экономического программного обеспечения". |
| − | Бизнес-объектом мы называем экземпляр одного из наследников абстрактного базового класса [[TgdcBase]]. В свою очередь TgdcBase, как это следует из представленной | + | Бизнес-объектом мы называем экземпляр одного из наследников абстрактного базового класса [[TgdcBase]]. В свою очередь TgdcBase, как это следует из представленной диаграммы, является наследником класса [[TIBCustomDataSet]]. |
| − | |||
| − | Использование набора данных ([[TDataSet]]) | + | http://gsbelarus.com/gs/images/gs/2009/book/Classes.gdcBase2.png |
| + | |||
| + | |||
| + | Использование набора данных ([[TDataSet]]), как одного из прародителей бизнес-классов позволяет стандартным образом, посредством компонента [[TDataSource]] подключаться к визуальным компонентам для отображения и редактирования данных. | ||
| + | |||
| + | Уникальным и незаменимым бизнес-объект делают следующие функции: | ||
| + | |||
| + | |||
| + | http://gsbelarus.com/gs/images/gs/2005/gedemin/bcstruct.png | ||
| + | |||
| + | |||
| + | * [[Бизнес-объект. Object Relational Mapping|Представление реляционных данных в объектном виде (ORM— Object Relational Mapping)]] | ||
| + | * [[Бизнес-объект. Разграничение прав доступа|Разграничение прав доступа]] | ||
| + | * [[Бизнес-объект. Сериализация данных|Сериализация данных]] | ||
| + | * [[Бизнес-объект. Организация пользовательского интерфейса|Организация пользовательского интерфейса]] | ||
| + | * Реализация логики бухгалтерского и складского движения | ||
| + | |||
| + | ===Виды бизнес-классов=== | ||
| + | |||
| + | В иерархии бизнес-классов платформы Гедымин встречаются классы следующих видов: | ||
| + | |||
| + | # Абстрактный базовый класс (Abstract Base Class -- ABC) | ||
| + | # Базовый класс | ||
| + | # Производный класс или просто класс | ||
| + | |||
| + | Примеры абстрактных базовых классов, это: TgdcBase, TgdcTree, TgdcLBRBTree и др. Абстрактный базовый класс не имеет главной таблицы (ListTable) и, соответственно, создать экземпляр такого класса нельзя. Основное предназначение абстрактного базового класса — это определение интерфейса для всех потомков. | ||
| + | |||
| + | Базовый класс предназначен для работы со списком объектов, имеющих общего родителя. Например, такие объекты как: Компания (TgdcCompany), Физическое лицо (TgdcContact), Банк (TgdcBank) и т.д. имеют общего родителя -- базовый класс TgdcBaseContact. Мы можем создать экземпляр базового класса и использовать его для отображения списка контактов. При вызове метода EditDialog, код базового класса определит тип текущей записи (GetCurrRecordClass), создаст экземпляр соответствующего класса и вызовет его метод EditDialog. Принято включать в наименование базового класса слово Base (пример: TgdcBaseContact). | ||
| + | |||
| + | Наконец, просто класс наследуется от базового класса или абстрактного базового класса и служит для представления конкретной сущности в базе данных. Если от простого класса наследуются другие классы, то он совмещает в себе черты поведения как базового класса, так и производного класса. Для того, чтобы внести ясность, рассмотрим класс Компания (TgdcCompany). От этого класса наследован класс Банк (TgdcBank). Если мы создадим экземпляр TgdcCompany, откроем список компаний, а затем попытаемся открыть одну из них на редактирование (метод EditDialog), то, если тип текущей записи равен типу Компания, то для редактирования будет использоваться текущий объект. Если тип текущей записи -- Банк, то для редактирования будет создан экземпляр класса TgdcBank у которого будет вызван метод EditDialog. | ||
| + | |||
| + | '''Полный тип бизнес-объекта''' состоит из его типа (бизнес-класса) и подтипа. | ||
| + | |||
| + | === См. также === | ||
| + | |||
| + | * [[Список бизнес-классов]] | ||
| + | * [http://gsbelarus.com/gs/modules.php?name=Downloads&d_op=getit&lid=48 Иерархия бизнес-классов ядра платформы] | ||
| + | |||
| + | [[Category:Учебный курс]] | ||
| + | [[Category:Бизнес-объект]] | ||
Текущая версия на 19:08, 10 января 2015
Если попытаться выразить сущность платформы Гедымин в одном словосочетании, то этим словосочетанием будет бизнес-объект. Именно бизнес-объекты отвечают за слово "быстрый" в слогане "средство быстрой разработки экономического программного обеспечения".
Бизнес-объектом мы называем экземпляр одного из наследников абстрактного базового класса TgdcBase. В свою очередь TgdcBase, как это следует из представленной диаграммы, является наследником класса TIBCustomDataSet.
Использование набора данных (TDataSet), как одного из прародителей бизнес-классов позволяет стандартным образом, посредством компонента TDataSource подключаться к визуальным компонентам для отображения и редактирования данных.
Уникальным и незаменимым бизнес-объект делают следующие функции:
- Представление реляционных данных в объектном виде (ORM— Object Relational Mapping)
- Разграничение прав доступа
- Сериализация данных
- Организация пользовательского интерфейса
- Реализация логики бухгалтерского и складского движения
[править] Виды бизнес-классов
В иерархии бизнес-классов платформы Гедымин встречаются классы следующих видов:
- Абстрактный базовый класс (Abstract Base Class -- ABC)
- Базовый класс
- Производный класс или просто класс
Примеры абстрактных базовых классов, это: TgdcBase, TgdcTree, TgdcLBRBTree и др. Абстрактный базовый класс не имеет главной таблицы (ListTable) и, соответственно, создать экземпляр такого класса нельзя. Основное предназначение абстрактного базового класса — это определение интерфейса для всех потомков.
Базовый класс предназначен для работы со списком объектов, имеющих общего родителя. Например, такие объекты как: Компания (TgdcCompany), Физическое лицо (TgdcContact), Банк (TgdcBank) и т.д. имеют общего родителя -- базовый класс TgdcBaseContact. Мы можем создать экземпляр базового класса и использовать его для отображения списка контактов. При вызове метода EditDialog, код базового класса определит тип текущей записи (GetCurrRecordClass), создаст экземпляр соответствующего класса и вызовет его метод EditDialog. Принято включать в наименование базового класса слово Base (пример: TgdcBaseContact).
Наконец, просто класс наследуется от базового класса или абстрактного базового класса и служит для представления конкретной сущности в базе данных. Если от простого класса наследуются другие классы, то он совмещает в себе черты поведения как базового класса, так и производного класса. Для того, чтобы внести ясность, рассмотрим класс Компания (TgdcCompany). От этого класса наследован класс Банк (TgdcBank). Если мы создадим экземпляр TgdcCompany, откроем список компаний, а затем попытаемся открыть одну из них на редактирование (метод EditDialog), то, если тип текущей записи равен типу Компания, то для редактирования будет использоваться текущий объект. Если тип текущей записи -- Банк, то для редактирования будет создан экземпляр класса TgdcBank у которого будет вызван метод EditDialog.
Полный тип бизнес-объекта состоит из его типа (бизнес-класса) и подтипа.