Шаблон проектирования прототипов — это порождающий шаблон проектирования, который помогает в прототипировании (недорогом создании/копировании) объекта с использованием отдельных методов или полиморфных классов. Прототипом можно считать модель объекта, на основе которой будет построен реальный объект. В этой статье о порождающих шаблонах проектирования мы разберёмся, для чего нужен шаблон проектирования прототипов в C++, рассмотрим фабрику прототипов и использование шаблона проектирования прототипов для реализации виртуального конструктора копирования.
В статье использованы упрощённые фрагменты кода. Так, например, вы можете заметить, что я часто не использую такие ключевые слова, как override, final, public (когда речь идёт о наследовании), ради большей компактности кода, чтобы он элементарно помещался у вас на экране. Кроме того, я иногда предпочитаю использовать struct вместо class, просто чтобы сэкономить строчку и не писать public:, и опускаю виртуальный деструктор, конструктор, конструктор копирования, префикс std::, намеренно убирая динамическую память. Я считаю себя прагматичным человеком и стремлюсь донести свои мысли самым простым способом, а не умничать, говоря на непонятном языке. |