C++. Паттерн проектирования программ 'Фабричный метод (FactoryMethod)'.

preview_player
Показать описание
В видео рассмотрен пример порождающего шаблона проектирования программ «Фабричный метод», который предоставляет дочерним классам интерфейс для создания экземпляров некоторого класса. В момент создания наследники могут определить какой класс создавать. Это позволяет использовать в коде программы неспецифические классы, а манипулировать абстрактными объектами на более высоком уровне.
Рекомендации по теме
Комментарии
Автор

Привет, вы забыли в интерфейсах указать виртуальный деструктор. И про оператор delete не стоит забывать😀

ПриятныйЧел
Автор

И всё же спасибо за видео!
//Интерфейс - абстрактное представление выпуска нового автомобиля
class IProduction {
public:
virtual void Release() = 0;
virtual ~ IProduction() {}
};
// Интерфейс абстрактного цеха по производству автомобилей
class IWorkShop {
public: // метод, возвратит абстрактный автомобиль
virtual IProduction* Create() = 0;
virtual ~ IWorkShop(){}
};
да, добавить деструкторы и динамическое освобождение памяти
int main()
{
// code //
delete creator;
delete car;
delete truck;
}

magellan
Автор

Сначала мы создаем в динамической памяти креатора, а потом этому креатору присваиваем другой объект в динамической памяти. т.е. старый объект не убрали. Примерчик так себе.

apelsin
Автор

После просмотра твоего видео я понял фабричный метод. Спасибо!!!

skllwarmfirst
Автор

А в чём проблема через темплейты такой функционал реализовать? Решение через темплейты выглядит как-то более лаконично

BlackRattata
Автор

Хорошие видео. еще бы с утечками что-то делал и вообще супер было бы.

alexlem
Автор

Можно еще unique_ptr использовать вместо *.

nikolayz
Автор

ребят простите а что значит когда мы там в интерфейсе воркшоп делаем подпись к вирт. методу с адресом прошлого интерфейса?

Сашаникулин-ыф