реализовал паттерн Стратегия, можно писать новые режимы работы
parent
125a4f3ea1
commit
d92d7adc9b
7
main.py
7
main.py
|
@ -1,11 +1,14 @@
|
|||
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" # Укажите путь к файлу
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue