У меня есть куча различных подклассов одного класса под названием стратегии, каждый из которых имеет уникальный строковый идентификаторПолучить конкретную строку, основанную на подкласса
class AdaptiveStrategy : Strategy {
public:
const static std::string uniqueKey;
AdaptiveStrategy();
private:
...
}
Каждый из них в файле .cpp имеет уникальный идентификатор на основе по его названию. У меня также есть другой файл .cpp, управляющий этими стратегиями. Этот класс Selector имеет указатель на Стратегию, который может меняться в течение всего моего проекта.
class Selector {
public:
Selector()
std::string getStrategyName() // help!
private:
Strategy *currentStrategy // can be any of the viable Strategy subclasses
}
По существу этот указатель неоднократно заменен, чтобы указать на новые стратегии, основанные на кучу разных вещей, которые могут произойти.
Я бы хотел, чтобы в этом Селекторе появился способ вернуть уникальный идентификатор текущей активной стратегии - что было бы лучшим способом сделать это?
Спасибо, Крис. Я знал о первой стратегии, но не был уверен, что это лучший способ заниматься делами. Есть ли какая-либо польза для второго решения, которое вы представили? –
Что касается производительности, второе решение должно быть быстрее, потому что программе не нужно находить правильный виртуальный метод во время выполнения. – Chris