Sobes.tech
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 обновляет отображение.