Абстрактная фабрика и классы как первоклассные объекты

Теоретический вопрос. Я читаю Gof’s Design Patterns, раздел Абстрактная фабрика. В книге упоминается возможность реализации этого шаблона как прототипа или, если язык позволяет, с помощью прототипа, который хранит классы вместо объектов.

Я понял это; например в Java или Smalltalk классы также являются объектами (в Java они фактически являются экземплярами класса Class). Следовательно, мы можем хранить их внутри класса и, при необходимости, вызывать создание экземпляров этих классов.

В C ++ классы не являются объектами первого класса; следовательно, мы не должны быть в состоянии следовать этому подходу. Однако не могли бы мы объявить вложенные классы внутри конкретной фабрики с методами, которые вызывают их конструкторы (и возвращают их экземпляры)? Окончательный результат будет таким же, как и у других языков, таких как Java или Smalltalk. Я прав?

Спасибо за Ваше внимание.

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector