Слайд 2
![... Абстрактная фабрика](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-1.jpg)
Слайд 3
![… Builder](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-2.jpg)
Слайд 4
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-3.jpg)
Слайд 5
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-4.jpg)
Слайд 6
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-5.jpg)
Слайд 7
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-6.jpg)
Слайд 8
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-7.jpg)
Слайд 9
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-8.jpg)
Слайд 10
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-9.jpg)
Слайд 11
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-10.jpg)
Слайд 12
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-11.jpg)
Слайд 13
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-12.jpg)
Слайд 14
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-13.jpg)
Слайд 15
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-14.jpg)
Слайд 16
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-15.jpg)
Слайд 17
![class Product{ public: virtual string getName() = 0; virtual ~Product() {} };](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-16.jpg)
class Product{
public:
virtual string getName() = 0;
virtual ~Product() {}
};
Слайд 18
![class ConcreteProductA: public Product{ public: string getName() {return "ConcreteProductA";} };](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-17.jpg)
class ConcreteProductA: public Product{
public:
string getName() {return "ConcreteProductA";}
};
class ConcreteProductB: public Product{
public:
string getName() {return "ConcreteProductB";}
};
Слайд 19
![class Creator{ public: virtual Product* factoryMethod() = 0; }; class](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-18.jpg)
class Creator{
public:
virtual Product* factoryMethod() = 0;
};
class ConcreteCreatorA: public Creator{
public:
Product* factoryMethod() {return new ConcreteProductA();}
};
class ConcreteCreatorB: public Creator{
public:
Product* factoryMethod() {return new ConcreteProductB();}
};
Слайд 20
![int main() { static const size_t count = 2; ConcreteCreatorA](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-19.jpg)
int main()
{
static const size_t count = 2;
ConcreteCreatorA CreatorA;
ConcreteCreatorB
CreatorB;
// Массив создателей
Creator*creators[count] = {&CreatorA, &CreatorB};
// Перебора создателей и создавать продукты
for(size_t i = 0; i Product* product=creators[i]->factoryMethod();
cout << product->getName() << endl;
delete product;
}
return 0;
}
Слайд 21
![Схожие шаблоны и их отличия](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134156/slide-20.jpg)
Схожие шаблоны и их отличия