![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
IDL2PAS/IDL2JAVA наследование интерфейсов
msts © (2002-06-20 08:24:00)Есть ли генераторы кода с возможностью указания наследования реализации интерфейсов? Например в idl указано:
interface ICSCardField : MetaSystem::IMetaObject {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
новый : модуль ::предок
attribute string FieldName;
...
по логике в сгенерированном коде неплохо бы сделать приведение типа
PAS:
CardField : ICSCardField;
CardField as IMetaObject ...
но этой возможности нет так как наследуются только атрибуты/методы
т.е. в ICSCardField перешло описание из IMetaObject но только в виде декларации а не наследования
IMetaObject
Name
ICSCardField
Name
FieldName
впринципе пришлось написать собственный генератор по IDL2PAS/JAVA но он крив...
msts (2002-06-22 20:25:00) [1]Если рассматривать технологию опираясь на примеры то так и есть, но при разработке большого проекта где по самым скромным подсчетам будет прорядка 150 интефейсов и в данный момент изветно только ~50 описано 30 а в процессе работы требуется регулярно изменять существующие интерфейсы при этом клиент сделан на дельфе а сервер на яве, у тебя порядка 120 файлов для явы и 18 для дельфи, в них в ручную вносить изменения проблематично :)
А если разработчиков 10 чел. да и еще проект сырой - когда непонято каким путем идти и нужно банальным образом экспериментировать?
Олег Лаукарт (2002-06-21 20:22:00) [2]Полностью согласен с вашим мнением, что это было бы удобно. К тому же, так как речь идет именно о наследовании хелперов, то это значит, что мы работаем в конкретной среде программирования, а значит такая "оптимизация" возможна.
Можно вносить правки в автоматически сгенерированные классы ручками, но, хотя изменения не большие, действительно это далеко не лучший метод. С другой стороны, интервейсы меняются не так уж часто, то есть мы генерируем хелперы тоже не часто, так что, если так уж надо, то можно и руками подправить.
А для чего вообще это надо?
msts (2002-06-20 12:15:00) [3]Конечно теория это хорошо - но только до тех пор пока она неограничивает практику. Ведь в реальности подобное преобразование типов необходимо сплошь и рядом а самое главное добавить эту возможность можно и очень просто - пять строк кода (но в каждый объект) и не нужно перегружать объект (хелпер)
он как говорится просто поддерживает эти интерфейсы
С другой стороны это естественное направление развития технологии и в принципе неплохо бы было подготовится к этому.
Олег Лаукарт (2002-06-20 10:37:00) [4]В IDL задекларировано и обращено внимание на то, что описание и наследование интерфейсов есть декларативным (см. Д.Рамодина) и не касается реализации. То о чем Вы говорите, касается реализации, т.е. не входит в парафию IDL и не соответствует идеалогии Corba. Из этого могу предположить, что промышленных генераторов, подходящик для ваших требований, нет.
По поводу приведения типов: если вы пользуетесь Делфи, то у хелперов есть метод Narrow, предназначенный для приведения ссылок на корба объект к требуемому интерфейсу.