Back to questions
Junior — Middle
49
Можете объяснить принципы работы и структуру паттерна MVVM в контексте Python?
Companies where asked
Танто-С
Answer from AI
sobes.tech AI
Паттерн MVVM (Model-View-ViewModel) разделяет логику приложения на три части:
- Model — отвечает за данные и бизнес-логику.
- View — интерфейс пользователя.
- ViewModel — посредник между Model и View, обрабатывает данные для отображения и реагирует на действия пользователя.
В Python MVVM часто реализуют с помощью библиотек для GUI, например, PyQt или Tkinter. ViewModel содержит свойства и методы, которые связываются с элементами интерфейса, обеспечивая двустороннюю связь.
Пример упрощённого ViewModel на Python с использованием PyQt:
from PyQt5.QtCore import QObject, pyqtSignal
class ViewModel(QObject):
dataChanged = pyqtSignal(str)
def __init__(self):
super().__init__()
self._data = ""
@property
def data(self):
return self._data
@data.setter
def data(self, value):
if self._data != value:
self._data = value
self.dataChanged.emit(self._data)
Здесь ViewModel уведомляет View об изменениях через сигнал, а View обновляет отображение.