1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/killf-CNTKDoc

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Tutorials.md 2.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 16:31 31883d7

Перевод исходного текста:

Текст запроса.

Пример использования паттерна «Стратегия» на 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/killf-CNTKDoc.git
git@api.gitlife.ru:oschina-mirror/killf-CNTKDoc.git
oschina-mirror
killf-CNTKDoc
killf-CNTKDoc
master