Как мне объявить конструктор класса в IDL?

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

2 ответа

Решение

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

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

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

interface ObjectFactory {
  Object create(...);
  ...
};
Другие вопросы по тегам