Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "Corba";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.052 c
1-1090406223
Dm_S
2004-07-21 14:37
2004.08.01
xl_1:=CreateOLEObject( Excel.Application в консольном приложении


1-1090229636
User_OKA
2004-07-19 13:33
2004.08.01
Метка


1-1089868475
~ShamaN~
2004-07-15 09:14
2004.08.01
Сложение и вычитание дат


14-1089463017
AlexG
2004-07-10 16:36
2004.08.01
Разработка программ на маленьком PC (корманном)


4-1087897134
Dennisius
2004-06-22 13:38
2004.08.01
Очищение (отключение автозаполнения)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский