Главная страница
    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.46 MB
Время: 0.03 c
1-1089847742
_Demik_
2004-07-15 03:29
2004.08.01
-= MainMenu =-


1-1090426260
ko
2004-07-21 20:11
2004.08.01
TSaveDialog


3-1089200786
stud
2004-07-07 15:46
2004.08.01
программное добавление юзеров и прав


3-1089273635
AlexanderSK
2004-07-08 12:00
2004.08.01
Как узнать ключевые поля таблицы?


1-1089844651
k2kator
2004-07-15 02:37
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский