Здравствуйте, NikeByNike, Вы писали:
NBN>IPortA* CreatePortA() { return new PortA<IPortA>; }
NBN>IPortB* CreatePortB() { return new PortB<IPortB>; }
Приём занятный, но, в случае множественной реализации интерфейсов будет очень громоздко
Всё-таки мне больше нравится в такой последовательности:
1) Вообще отказаться от наследования интерфейсов. (Проблем никаких, всё понятно, предсказуемо, без накладных расходов, да и совместимо с любыми языками)
2) Виртуально выводиться из базовых интерфейсов
3) Схемы с шаблонами
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском