Я создаю библиотеку классов со множеством различных параметров для возможных настроек. Например, вы можете создать свой класс, чтобы он мог выполнять FeatureX(), или вы можете создать свой класс, чтобы он мог выполнять функцию FeatureY().C++/Java Inheritance vs. Delegation vs. etc
В нормальных условиях вы просто создадите интерфейс IFeatureX с помощью чистого виртуального метода FeatureX и другого интерфейса IFeatureY с помощью чистого виртуального метода, называемого FeatureY. Если класс имеет как FeatureX, так и FeatureY, он может наследовать от обоих, без проблем.
Моя проблема в том, что если функции/методу требуется объект, который может выполнять функции FeatureX() и FeatureY()? Как я могу выразить тип на языке C++, но ответ на Java также может помочь, чтобы обеспечить доступность как FeatureX, так и FeatureY?
Я могу создать другой интерфейс IFeatureXY, который наследуется от IFeatureX и IFeatureY? Хорошо ... если есть только две возможности, я мог бы с этим справиться. Но если есть сказать ... 10 функций, количество возможных интерфейсов становится массивным.
Есть ли простой способ сделать это? Я попытался решить проблему с помощью шаблонов C++ и делегирования, но не зашел слишком далеко. Я надеюсь, что есть простое решение этого, и, вероятно, есть тот, который я просто забыл.
Я ценю любую помощь и советы, которые у вас есть.
Спасибо.
Спасибо, это похоже на то, что я имел в виду, но выглядит намного более надежным. – Kranar