реализовал паттерн Стратегия, можно писать новые режимы работы
parent
125a4f3ea1
commit
d92d7adc9b
7
main.py
7
main.py
|
@ -1,12 +1,15 @@
|
||||||
from mvc.models import VimModel
|
from mvc.models import VimModel
|
||||||
from mvc.views import VimView
|
from mvc.views import VimView
|
||||||
from mvc.controllers import EditController
|
from mvc.controllers import Controller, EditStrategy
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
model = VimModel()
|
model = VimModel()
|
||||||
view = VimView()
|
view = VimView()
|
||||||
controller = EditController(model, view.curses_adapter)
|
|
||||||
|
|
||||||
|
# начальный режим - редактирование
|
||||||
|
strategy = EditStrategy(model, view.curses_adapter)
|
||||||
|
controller = Controller(strategy)
|
||||||
|
|
||||||
# Загрузка файла для редактирования
|
# Загрузка файла для редактирования
|
||||||
file_path = "example.txt" # Укажите путь к файлу
|
file_path = "example.txt" # Укажите путь к файлу
|
||||||
model.LoadFile(file_path)
|
model.LoadFile(file_path)
|
||||||
|
|
|
@ -1,7 +1,25 @@
|
||||||
|
from abc import ABC, abstractmethod
|
||||||
from mvc.views import CursesAdapter
|
from mvc.views import CursesAdapter
|
||||||
from mvc.models import VimModel
|
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):
|
def __init__(self, model: VimModel, adapter: CursesAdapter):
|
||||||
self.model = model
|
self.model = model
|
||||||
self.adapter = adapter
|
self.adapter = adapter
|
||||||
|
|
Loading…
Reference in New Issue