Есть иерархия сущностей, каждая из которых имеется в легком и тяжелом видах (lightweight, heavy).
Легкие — сериализуемые.
Соответственно, фабрика имеет:
— метод, создающий lightweight по типу объекта (больший switch);
— метод, создающий heavy по типу объекта (тот же больший switch);
— метод, создающий копию heavy по указателю на его базовый класс (да, больший switch).
У меня есть подозрения, что, как минимум, количество свичей можно существенно сократить, применив шаблоны.
Но как именно?
Здравствуйте, Lexerys, Вы писали:
L>Есть иерархия сущностей, каждая из которых имеется в легком и тяжелом видах (lightweight, heavy). L>Легкие — сериализуемые.
L>Соответственно, фабрика имеет: L> — метод, создающий lightweight по типу объекта (больший switch); L> — метод, создающий heavy по типу объекта (тот же больший switch); L> — метод, создающий копию heavy по указателю на его базовый класс (да, больший switch).
L>У меня есть подозрения, что, как минимум, количество свичей можно существенно сократить, применив шаблоны. L>Но как именно?
Здравствуйте, Lexerys, Вы писали:
L>Есть иерархия сущностей, каждая из которых имеется в легком и тяжелом видах (lightweight, heavy). L>Легкие — сериализуемые.
L>Соответственно, фабрика имеет: L> — метод, создающий lightweight по типу объекта (больший switch); L> — метод, создающий heavy по типу объекта (тот же больший switch); L> — метод, создающий копию heavy по указателю на его базовый класс (да, больший switch).
L>У меня есть подозрения, что, как минимум, количество свичей можно существенно сократить, применив шаблоны. L>Но как именно?
L>Спасибо.
1) создаёшь два мэпа из id типа в функцию создания тяжёлого и создания лёгкого.
2) создаёшь шаблонный класс, экземпляр которого регит эти все функции
3) используешь.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Lexerys, Вы писали:
L>Соответственно, фабрика имеет: L> — метод, создающий lightweight по типу объекта (больший switch); L> — метод, создающий heavy по типу объекта (тот же больший switch); L> — метод, создающий копию heavy по указателю на его базовый класс (да, больший switch).
L>У меня есть подозрения, что, как минимум, количество свичей можно существенно сократить, применив шаблоны. L>Но как именно?