Как мне объявить конструктор класса в IDL?
Как определить конструктор класса в IDL?
2 ответа
Решение
Вы не IDL об интерфейсах, а не о том, как создаются объекты. Клиентам не нужно знать эти детали, просто как взаимодействовать с таким объектом, когда он доступен в сети.
Конструктор используется для создания и инициализации объекта. Однако конструктор создает объект локально, то есть в адресном пространстве процесса, который вызывает конструктор. Из-за этого конструктор нельзя использовать для создания объекта в другом процессе, и по этой причине вы не можете определить конструктор для интерфейса IDL.
Если вы хотите создать объект в другом (серверном) процессе, вы можете использовать фабричный шаблон, который вызывает операцию с существующим объектом на сервере. Например,
interface ObjectFactory {
Object create(...);
...
};