Автопорождение
В Borland или Microsoft C++ легко создаются объекты классов, но не сами классы. Для несведущего пользователя предоставляется библиотека уже созданных ранее классов из которых можно построить свое клиентское приложение для работы с базой данных. Что предлагает Nexus технология? Она предлагает достаточно просто строить полноценные классы, не изменяя клиентского приложения. И классы и объекты классов в nexus клиенте будут видны одинаково хорошо.
Автопорождением называется автоматический или полуавтоматический процесс создания класса при помощи средств разработки. Как и все подобные системы, Nexus технология имеет простое средство разработки классов. Им явлается специальный класс, который я назвал «Автоабстрактный документ с гридом» (Autodocgrid).
При помощи этого класса можно создавать классы объектов, состоящих из двух таблиц, одна из которых содержит свойства объектов класса, а вторая служит для хранения некоего списка или грида, принадлежащего объекту класса. Как показала практика, этот частный случай является наиболее широкоупотребимым в современных учетных системах и охватывает почти все множество требований заказчиков, занимающихся бизнесом. Когда класс создан, то он появляется в дереве «Автоабстрактный документ с гридом»:
Начальные описания классов хранятся в отдельной папке «Авторожденные классы с гридом»
Начальные описания классов представляют собой описания имен таблиц для класса, имена колонок, формата вывода и более сложные элементы межклассового свойства. В системе этот класс документов нисколько не отличается от обычного представления и хранения других классов. Особенностью этого класса является свойство «Создать класс», по которому в каталоге файловой системы создаются файлы скриптов будущего класса.
Данный файл SQL скрипта является входным для конвертора макроязыка CASP(старая версия) или
GOLDS – Good Old Scripts utility.
Как создается новый класс в данном контексте?
Конечно, пример – это лучшее объяснение.
Предположим, что мы хотим создать новый класс ‘First’ с широко употребительным именем ‘Первый класс’, который имеет таблицу TFirst( f_one int, f_two int, f_three int). Для этого
Создаем Документ Описания класса .
Заполняем Форма Описания класса. Описание класса First сохраняется в каталоге Классы\Авторожденные классы.
После того как описание класса создано, необходимо создать скрипт нового класса. Скрипт создается в виде текстовых файлов First Install.sql, First.sql и First Must To Do.sql поскольку в реальной ситуации модификация процедур порожденного класса неизбежна.
Исходные скрипты нового класса, после обработки CASP или GOLDS, компилируются в базу данных в следующем порядке:
– First Install.sql (один раз);
– First.sql (после каждого сеанса редактирования);
– First Must To Do.sql (один раз).
После этого Nexus клиент может создавать объекты нового класса First.
Что дает такой подход?
Прежде всего скорость разработки – за час можно сгенерировать десяток классов и дальше развивать функционал класса до желаемого, уже в рамках конкретной постановки задачи исобственных знаний SQL процедур.
К другим принципиальным преимуществам я отношу Полиморфизм М и Ассоциация Я.
51
Увяла плоть, что в скачке от тебя,
Медлительнее вялого коня,
И мысли о тебе с ней в состоянии вражды
До возвращенья, в спешке нет нужды.
И оправдание любовью не пройдет,
Когда к тебе обратно плоть моя идет.
Я с ветром вою и вонзаю шпоры страсти
В ее теперь я абсолютно власти.
И мы встаем на стремена и вскачь.
Желание мое, ты – мой палач.
Летим на крыльях моей пламенной любви,
Плоть – с ржанием, я – позади...
И, если у тебя попросят оправданья,
Я обгоню ее, любовь вне опозданья.