From d92d7adc9b6a9aeea786be958dce357edc0bf709 Mon Sep 17 00:00:00 2001 From: serr Date: Tue, 4 Feb 2025 16:08:51 +0300 Subject: [PATCH] =?UTF-8?q?=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BB=20=D0=BF=D0=B0=D1=82=D1=82=D0=B5=D1=80=D0=BD?= =?UTF-8?q?=20=D0=A1=D1=82=D1=80=D0=B0=D1=82=D0=B5=D0=B3=D0=B8=D1=8F,=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=20=D0=BF=D0=B8=D1=81=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=20=D0=BD=D0=BE=D0=B2=D1=8B=D0=B5=20=D1=80=D0=B5=D0=B6?= =?UTF-8?q?=D0=B8=D0=BC=D1=8B=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 7 +++++-- mvc/controllers.py | 20 +++++++++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index d136e3d..4f75e69 100644 --- a/main.py +++ b/main.py @@ -1,12 +1,15 @@ from mvc.models import VimModel from mvc.views import VimView -from mvc.controllers import EditController +from mvc.controllers import Controller, EditStrategy def main(): model = VimModel() view = VimView() - controller = EditController(model, view.curses_adapter) + # начальный режим - редактирование + strategy = EditStrategy(model, view.curses_adapter) + controller = Controller(strategy) + # Загрузка файла для редактирования file_path = "example.txt" # Укажите путь к файлу model.LoadFile(file_path) diff --git a/mvc/controllers.py b/mvc/controllers.py index 4e327f6..47d2813 100644 --- a/mvc/controllers.py +++ b/mvc/controllers.py @@ -1,7 +1,25 @@ +from abc import ABC, abstractmethod from mvc.views import CursesAdapter from mvc.models import VimModel -class EditController: +class IStrategy(ABC): + def __init__(self, model: VimModel, adapter: CursesAdapter): + self.model = model + self.adapter = adapter + + @abstractmethod + def HandleInput(self, symbolCode: int) -> bool: + pass + +class Controller: + def __init__(self, strategy: IStrategy): + self.strategy = strategy + def SetController(self, strategy: IStrategy): + self.strategy = strategy + def HandleInput(self, symbolCode: int): + return self.strategy.HandleInput(symbolCode) + +class EditStrategy(IStrategy): def __init__(self, model: VimModel, adapter: CursesAdapter): self.model = model self.adapter = adapter