Перевод исходного текста:
Текст запроса.
Пример использования паттерна «Стратегия» на Python
Рассмотрим пример использования паттерна «Стратегия» на Python. В этом примере мы создадим абстрактный класс Strategy
, который будет определять общий интерфейс для всех конкретных стратегий. Затем мы создадим несколько конкретных классов, которые будут реализовывать различные стратегии. Наконец, мы создадим класс Context
, который будет использовать эти стратегии.
Вот как это может выглядеть:
from abc import ABC, abstractmethod
class Strategy(ABC):
@abstractmethod
def execute(self) -> None:
pass
# Конкретная стратегия
class ConcreteStrategyA(Strategy):
def execute(self) -> None:
print("Конкретная стратегия A")
# Другая конкретная стратегия
class ConcreteStrategyB(Strategy):
def execute(self) -> None:
print("Конкретная стратегия B")
class Context:
def __init__(self, strategy: Strategy) -> None:
self._strategy = strategy
def run(self) -> None:
self._strategy.execute()
if __name__ == "__main__":
context = Context(ConcreteStrategyA())
context.run()
В этом примере класс Context
использует стратегию ConcreteStrategyA
для выполнения своей работы. Мы можем легко заменить эту стратегию на другую, просто изменив аргумент конструктора Context
. Это позволяет нам легко изменять поведение класса Context
без изменения его кода.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )