Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.022 c
1-1090415440
som
2004-07-21 17:10
2004.08.01
Как осуществить вертикальную прокрутку текста ?


3-1089281653
AlexnaderSK
2004-07-08 14:14
2004.08.01
Возможно ли в IB создать именованное ограничение NOT NULL?


3-1089199239
Cranky
2004-07-07 15:20
2004.08.01
оцените код , и оптемезуйте


1-1089931646
Ardagast
2004-07-16 02:47
2004.08.01
function some(some: array of array of integer): integer;


9-1082496675
Demi
2004-04-21 01:31
2004.08.01
С чего начать и чем лучше




   Наверх