Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.01;
Скачать: CL | DM;

Вниз

IDL2PAS/IDL2JAVA наследование интерфейсов   Найти похожие ветки 

 
msts   (2002-06-20 08:24) [0]

Есть ли генераторы кода с возможностью указания наследования реализации интерфейсов? Например в idl указано:
 interface ICSCardField : MetaSystem::IMetaObject {
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
              новый     :    модуль ::предок
   attribute string FieldName;
 ...

по логике в сгенерированном коде неплохо бы сделать приведение типа
PAS:
CardField : ICSCardField;
CardField as IMetaObject ...
но этой возможности нет так как наследуются только атрибуты/методы
т.е. в ICSCardField перешло описание из IMetaObject но только в виде декларации а не наследования
  IMetaObject
     Name  

  ICSCardField  
     Name
     FieldName
впринципе пришлось написать собственный генератор по IDL2PAS/JAVA но он крив...


 
Олег Лаукарт ©   (2002-06-20 10:37) [1]

В IDL задекларировано и обращено внимание на то, что описание и наследование интерфейсов есть декларативным (см. Д.Рамодина) и не касается реализации. То о чем Вы говорите, касается реализации, т.е. не входит в парафию IDL и не соответствует идеалогии Corba. Из этого могу предположить, что промышленных генераторов, подходящик для ваших требований, нет.
По поводу приведения типов: если вы пользуетесь Делфи, то у хелперов есть метод Narrow, предназначенный для приведения ссылок на корба объект к требуемому интерфейсу.


 
msts   (2002-06-20 12:15) [2]

Конечно теория это хорошо - но только до тех пор пока она неограничивает практику. Ведь в реальности подобное преобразование типов необходимо сплошь и рядом а самое главное добавить эту возможность можно и очень просто - пять строк кода (но в каждый объект) и не нужно перегружать объект (хелпер)
он как говорится просто поддерживает эти интерфейсы
С другой стороны это естественное направление развития технологии и в принципе неплохо бы было подготовится к этому.


 
Олег Лаукарт ©   (2002-06-21 20:22) [3]

Полностью согласен с вашим мнением, что это было бы удобно. К тому же, так как речь идет именно о наследовании хелперов, то это значит, что мы работаем в конкретной среде программирования, а значит такая "оптимизация" возможна.
Можно вносить правки в автоматически сгенерированные классы ручками, но, хотя изменения не большие, действительно это далеко не лучший метод. С другой стороны, интервейсы меняются не так уж часто, то есть мы генерируем хелперы тоже не часто, так что, если так уж надо, то можно и руками подправить.
А для чего вообще это надо?


 
msts   (2002-06-22 20:25) [4]

Если рассматривать технологию опираясь на примеры то так и есть, но при разработке большого проекта где по самым скромным подсчетам будет прорядка 150 интефейсов и в данный момент изветно только ~50 описано 30 а в процессе работы требуется регулярно изменять существующие интерфейсы при этом клиент сделан на дельфе а сервер на яве, у тебя порядка 120 файлов для явы и 18 для дельфи, в них в ручную вносить изменения проблематично :)
А если разработчиков 10 чел. да и еще проект сырой - когда непонято каким путем идти и нужно банальным образом экспериментировать?



Страницы: 1 вся ветка

Текущий архив: 2004.08.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
1-1089977459
borow
2004-07-16 15:30
2004.08.01
Проблема с quickrep


14-1089778433
Dmitriy O.
2004-07-14 08:13
2004.08.01
Что лутше IBdataSet или IBQuery+IBupdateSQL ?


1-1090240379
Dmitry
2004-07-19 16:32
2004.08.01
MDI Application


14-1089718802
Aldor_
2004-07-13 15:40
2004.08.01
Как работать с IDL файлами в Delphi?


14-1089833539
Opilki_Inside
2004-07-14 23:32
2004.08.01
Могут ли студенты работать полный рабочий день?