Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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, предназначенный для приведения ссылок на корба объект к требуемому интерфейсу.


Наверх

Титульная страница Поиск, карта сайта Написать письмо