Возможные реализации для решения конкретных задач на С++
Factory method
Фабричный метод с созданием нового объекта
class Car
{
public:
virtual ~Car() = default;
virtual void drive() = 0;
};
class Sedan : public Car
{
public:
Sedan()
{
cout << "Sedan constructor called" << endl;
}
~Sedan() override
{
cout << "Sedan destructor called" << endl;
}
void drive() override
{
cout << "Driving sedan" << endl;
}
};Фабричный метод без повторного создания объектов. Идиома NVI (Non-Virtual Interface).
Фабричный метод с шаблонным CarCreator
Фабричный метод со статическим шаблонным методом create
Фабричный метод с шаблонным базовым классом Creator
Фабричный метод и "Cтатический полиморфизм" (CRTP)
Фабричный метод с использованием идиомы «стирание типа» (Type erasure)
Использование паттерна «фабричный метод» для паттерна Command
Last updated