Sobes.tech
Back to questions
Junior — Middle
62

Какие шаблоны с ветвящимися схемами применения вы использовали в практике?

Answer from AI

sobes.tech AI

В практике программирования на Python часто используются шаблоны с ветвящимися схемами применения, например:

  • Шаблон "Стратегия" (Strategy): позволяет выбирать алгоритм из набора вариантов во время выполнения. Ветвление происходит при выборе конкретной стратегии.

  • Шаблон "Состояние" (State): объект меняет свое поведение в зависимости от внутреннего состояния, что реализуется через ветвления по состояниям.

  • Обработчики событий (Event Handlers): разные действия выполняются в зависимости от типа или содержимого события.

  • Цепочка обязанностей (Chain of Responsibility): запрос передается по цепочке обработчиков, каждый из которых решает, обработать запрос или передать дальше.

Пример использования шаблона "Стратегия":

class PaymentStrategy:
    def pay(self, amount):
        pass

class CreditCardPayment(PaymentStrategy):
    def pay(self, amount):
        print(f"Оплата {amount} с помощью кредитной карты")

class PayPalPayment(PaymentStrategy):
    def pay(self, amount):
        print(f"Оплата {amount} через PayPal")

class ShoppingCart:
    def __init__(self, payment_strategy):
        self.payment_strategy = payment_strategy

    def checkout(self, amount):
        self.payment_strategy.pay(amount)

# Использование
cart = ShoppingCart(CreditCardPayment())
cart.checkout(100)

cart.payment_strategy = PayPalPayment()
cart.checkout(200)

Такой подход позволяет гибко менять поведение программы без изменения её структуры.