Какие шаблоны с ветвящимися схемами применения вы использовали в практике?
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)
Такой подход позволяет гибко менять поведение программы без изменения её структуры.