Теоретический вопрос. Я читаю Gof’s Design Patterns, раздел Абстрактная фабрика. В книге упоминается возможность реализации этого шаблона как прототипа или, если язык позволяет, с помощью прототипа, который хранит классы вместо объектов.
Я понял это; например в Java или Smalltalk классы также являются объектами (в Java они фактически являются экземплярами класса Class). Следовательно, мы можем хранить их внутри класса и, при необходимости, вызывать создание экземпляров этих классов.
В C ++ классы не являются объектами первого класса; следовательно, мы не должны быть в состоянии следовать этому подходу. Однако не могли бы мы объявить вложенные классы внутри конкретной фабрики с методами, которые вызывают их конструкторы (и возвращают их экземпляры)? Окончательный результат будет таким же, как и у других языков, таких как Java или Smalltalk. Я прав?
Спасибо за Ваше внимание.
Задача ещё не решена.
Других решений пока нет …