Как мне объявить конструктор класса в IDL? - PullRequest
0 голосов
/ 13 июня 2011

Как определить конструктор класса в IDL?

Ответы [ 2 ]

7 голосов
/ 13 июня 2011

Ты не. IDL об интерфейсах, а не о том, как создаются объекты. Клиентам не нужно знать эти детали, просто как взаимодействовать с таким объектом, когда он доступен в сети.

2 голосов
/ 13 июня 2011

Конструктор используется для создания и инициализации объекта. Однако конструктор создает объект локально , то есть в адресном пространстве процесса, который вызывает конструктор. Из-за этого конструктор нельзя использовать для создания объекта в другом процессе, и именно поэтому вы не можете определить конструктор для интерфейса IDL.

Если вы хотите создать объект в другом (серверном) процессе, вы можете использовать фабричный шаблон, который вызывает операцию с существующим объектом на сервере. Например,

interface ObjectFactory {
  Object create(...);
  ...
};
...