🗊Презентация Паттерн Builder (строитель)

Нажмите для полного просмотра!
Паттерн Builder (строитель), слайд №1Паттерн Builder (строитель), слайд №2Паттерн Builder (строитель), слайд №3Паттерн Builder (строитель), слайд №4Паттерн Builder (строитель), слайд №5Паттерн Builder (строитель), слайд №6Паттерн Builder (строитель), слайд №7Паттерн Builder (строитель), слайд №8Паттерн Builder (строитель), слайд №9Паттерн Builder (строитель), слайд №10Паттерн Builder (строитель), слайд №11Паттерн Builder (строитель), слайд №12Паттерн Builder (строитель), слайд №13Паттерн Builder (строитель), слайд №14Паттерн Builder (строитель), слайд №15Паттерн Builder (строитель), слайд №16Паттерн Builder (строитель), слайд №17Паттерн Builder (строитель), слайд №18Паттерн Builder (строитель), слайд №19Паттерн Builder (строитель), слайд №20Паттерн Builder (строитель), слайд №21Паттерн Builder (строитель), слайд №22Паттерн Builder (строитель), слайд №23Паттерн Builder (строитель), слайд №24

Вы можете ознакомиться и скачать презентацию на тему Паттерн Builder (строитель). Доклад-сообщение содержит 24 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Паттерн Builder (строитель)

Идрисова И. А.
Описание слайда:
Паттерн Builder (строитель) Идрисова И. А.

Слайд 2





... Абстрактная фабрика
Описание слайда:
... Абстрактная фабрика

Слайд 3


Паттерн Builder (строитель), слайд №3
Описание слайда:

Слайд 4


Паттерн Builder (строитель), слайд №4
Описание слайда:

Слайд 5


Паттерн Builder (строитель), слайд №5
Описание слайда:

Слайд 6


Паттерн Builder (строитель), слайд №6
Описание слайда:

Слайд 7


Паттерн Builder (строитель), слайд №7
Описание слайда:

Слайд 8


Паттерн Builder (строитель), слайд №8
Описание слайда:

Слайд 9


Паттерн Builder (строитель), слайд №9
Описание слайда:

Слайд 10





Структура паттерна Builder
Описание слайда:
Структура паттерна Builder

Слайд 11


Паттерн Builder (строитель), слайд №11
Описание слайда:

Слайд 12


Паттерн Builder (строитель), слайд №12
Описание слайда:

Слайд 13





Отношения между участниками
Клиент конфигурирует распорядителя (Director) экземпляром конкретного строителя.
Распорядитель вызывает методы строителя для конструирования частей продукта. 
Конкретный строитель создает продукт и следит за его конструированием.
Конкретный строитель представляет интерфейс для доступа к продукту.
Описание слайда:
Отношения между участниками Клиент конфигурирует распорядителя (Director) экземпляром конкретного строителя. Распорядитель вызывает методы строителя для конструирования частей продукта. Конкретный строитель создает продукт и следит за его конструированием. Конкретный строитель представляет интерфейс для доступа к продукту.

Слайд 14


Паттерн Builder (строитель), слайд №14
Описание слайда:

Слайд 15


Паттерн Builder (строитель), слайд №15
Описание слайда:

Слайд 16





Пример кода на С++
Описание слайда:
Пример кода на С++

Слайд 17





// Product
// Product
class Pizza
{
private:
    std::string dough;
    std::string sauce;
    std::string topping;
Описание слайда:
// Product // Product class Pizza { private: std::string dough; std::string sauce; std::string topping;

Слайд 18





// Director
// Director
class Waiter
{
private:
    PizzaBuilder* pizzaBuilder;
public:
    Waiter() : pizzaBuilder(NULL) {}
    ~Waiter() { }
     void SetPizzaBuilder(PizzaBuilder* b) { pizzaBuilder = b; }
    std::shared_ptr<Pizza> GetPizza() { return pizzaBuilder->GetPizza(); }
    void ConstructPizza()
    {
        pizzaBuilder->createNewPizzaProduct();
        pizzaBuilder->buildDough();
        pizzaBuilder->buildSauce();
        pizzaBuilder->buildTopping();
    }       
};                            // Клиент заказывает две пиццы.
Описание слайда:
// Director // Director class Waiter { private: PizzaBuilder* pizzaBuilder; public: Waiter() : pizzaBuilder(NULL) {} ~Waiter() { }   void SetPizzaBuilder(PizzaBuilder* b) { pizzaBuilder = b; } std::shared_ptr<Pizza> GetPizza() { return pizzaBuilder->GetPizza(); } void ConstructPizza() { pizzaBuilder->createNewPizzaProduct(); pizzaBuilder->buildDough(); pizzaBuilder->buildSauce(); pizzaBuilder->buildTopping(); } }; // Клиент заказывает две пиццы.

Слайд 19





// Abstract Builder
// Abstract Builder
class PizzaBuilder
{
protected:
    std::shared_ptr<Pizza> pizza;
public:
    PizzaBuilder() {}
    virtual ~PizzaBuilder() {}
    std::shared_ptr<Pizza> GetPizza() { return pizza; }
     void createNewPizzaProduct() { pizza.reset (new Pizza); }
     virtual void buildDough()=0;
    virtual void buildSauce()=0;
    virtual void buildTopping()=0;
 };                                                               ----> …
Описание слайда:
// Abstract Builder // Abstract Builder class PizzaBuilder { protected: std::shared_ptr<Pizza> pizza; public: PizzaBuilder() {} virtual ~PizzaBuilder() {} std::shared_ptr<Pizza> GetPizza() { return pizza; }   void createNewPizzaProduct() { pizza.reset (new Pizza); }   virtual void buildDough()=0; virtual void buildSauce()=0; virtual void buildTopping()=0;  }; ----> …

Слайд 20






// ConcreteBuilder
class SpicyPizzaBuilder : public PizzaBuilder
{
public:
    SpicyPizzaBuilder() : PizzaBuilder() {}
    ~SpicyPizzaBuilder() {}
 
    void buildDough() { pizza->SetDough("pan baked"); }
    void buildSauce() { pizza->SetSauce("hot"); }
    void buildTopping() { pizza->SetTopping("pepperoni and salami"); }
};
Описание слайда:
// ConcreteBuilder class SpicyPizzaBuilder : public PizzaBuilder { public: SpicyPizzaBuilder() : PizzaBuilder() {} ~SpicyPizzaBuilder() {}   void buildDough() { pizza->SetDough("pan baked"); } void buildSauce() { pizza->SetSauce("hot"); } void buildTopping() { pizza->SetTopping("pepperoni and salami"); } };

Слайд 21


Паттерн Builder (строитель), слайд №21
Описание слайда:

Слайд 22


Паттерн Builder (строитель), слайд №22
Описание слайда:

Слайд 23





Результаты использования паттерна 
Есть возможность изменять внутреннею структуру создаваемого продукта (или создать новый продукт). 
продукт конструируется через абстрактный интерфейс класса Builder, для добавления нового продукта достаточно определить новый вид строителя (т.е. реализовать новый подкласс класса Builder).
Повышение модульности за счет разделения распорядителя и строителя. 
Каждый строитель имеет весь необходимый код для пошагового построения продукта. 
Поэтому он может использоваться разными распорядителями для построения вариантов продукта из одних и тех же частей.
Пошаговое построение продукта позволяет обеспечить более пристальный контроль над процессом конструирования 
в отличие от других порождающих паттернов, которые создают продукт мгновенно.
Описание слайда:
Результаты использования паттерна Есть возможность изменять внутреннею структуру создаваемого продукта (или создать новый продукт). продукт конструируется через абстрактный интерфейс класса Builder, для добавления нового продукта достаточно определить новый вид строителя (т.е. реализовать новый подкласс класса Builder). Повышение модульности за счет разделения распорядителя и строителя. Каждый строитель имеет весь необходимый код для пошагового построения продукта. Поэтому он может использоваться разными распорядителями для построения вариантов продукта из одних и тех же частей. Пошаговое построение продукта позволяет обеспечить более пристальный контроль над процессом конструирования в отличие от других порождающих паттернов, которые создают продукт мгновенно.

Слайд 24





Лабораторная работа №1 (дедлайн - 26.02)
Порядок выполнения работы:

1. С использованием одного из языков программирования (C++) реализовать шаблоны проектирования
а) Шаблон “Абстрактная фабрика”. Проект “Заводы по производству автомобилей”. В проекте должно быть реализована возможность создавать автомобили различных типов на разных заводах. 

б) Хлеб может иметь различную комбинацию компонентов: ржаной и пшеничной муки, соли, пищевых добавок. И нам надо обеспечить выпечку разных сортов хлеба. Для разных сортов хлеба может варьироваться конкретный набор компонентов, не все компоненты могут использоваться. И для этой задачи применим паттерн Builder.

2. Разработать UML модель
Описание слайда:
Лабораторная работа №1 (дедлайн - 26.02) Порядок выполнения работы: 1. С использованием одного из языков программирования (C++) реализовать шаблоны проектирования а) Шаблон “Абстрактная фабрика”. Проект “Заводы по производству автомобилей”. В проекте должно быть реализована возможность создавать автомобили различных типов на разных заводах. б) Хлеб может иметь различную комбинацию компонентов: ржаной и пшеничной муки, соли, пищевых добавок. И нам надо обеспечить выпечку разных сортов хлеба. Для разных сортов хлеба может варьироваться конкретный набор компонентов, не все компоненты могут использоваться. И для этой задачи применим паттерн Builder. 2. Разработать UML модель



Похожие презентации
Mypresentation.ru
Загрузить презентацию