Skip to content

nopurplO/5lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Применение паттернов на примере газировок

Пример реализации паттернов проектирования на примере программы по производству и управлению газированными напитками.


Использованные паттерны

1. Паттерн "Стратегия"

Назначение:

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

Где используется:

  • DrinkingStrategy — разные способы употребления напитка:
    • NormalDrinking — обычное питьё
    • SlowDrinking — медленное питьё
  • BuyingStrategy — способы покупки:
    • NormalBuying — в магазине
    • OnlineBuying — онлайн
  • MixingStrategy — способы смешивания:
    • NormalMixing — смешивать с другими напитками
    • NoMixing — не смешивать

Зачем нужен:

Этот паттерн позволяет легко расширять поведение объектов. Например, можно добавить стратегию PartyDrinking() или BuyInVendingMachine(), не изменяя существующий код.


2. Паттерн "Шаблонный метод"

Назначение:

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

Где используется:

В базовом классе soda:

void PrepareDrink() {
    PrepareBottle();
    SpecIngredient();
    Carbonate();
    PourLiquid();
    SealBottle();
    AddSpecialLabel();
}

Зачем нужен:

Обеспечивает повторное использование общих частей алгоритма и позволяет настраивать детали для разных типов напитков.

Позволяет вынести общую логику создания напитка в один базовый класс, а специфичные детали — реализовать в наследниках (tarkhun, kvas, cola). Это упрощает расширение и поддержку кода.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages