Sobes.tech
Junior — Middle

Jak odbywa się wymiana informacji między modelem, widokiem a kontrolerem w architekturze MVC?

sobes.tech AI

Odpowiedź od AI

W architekturze MVC (Model-View-Controller) dochodzi do podziału odpowiedzialności między trzema komponentami:

  • Model (Model) — odpowiada za dane i logikę biznesową.
  • View (Widok) — odpowiada za wyświetlanie danych użytkownikowi.
  • Controller (Kontroler) — obsługuje wejście użytkownika i współpracuje z modelem i widokiem.

Wymiana informacji przebiega w następujący sposób:

  1. Użytkownik wchodzi w interakcję z View (np. naciska przycisk).
  2. View przekazuje zdarzenie do Controller.
  3. Controller obsługuje zdarzenie, ewentualnie zmienia dane w Model.
  4. Model aktualizuje swój stan.
  5. Model powiadamia View o zmianach (np. przez wzorzec obserwatora lub bezpośredni wywołanie).
  6. View aktualizuje wyświetlanie na podstawie nowych danych z Model.

Przykład w PHP (uproszczony):

// Kontroler
class UserController {
    private $model;
    private $view;

    public function __construct($model, $view) {
        $this->model = $model;
        $this->view = $view;
    }

    public function updateUserName($name) {
        $this->model->setName($name);
        $this->view->render($this->model->getData());
    }
}

W ten sposób kontroler działa jako pośrednik między modelem a widokiem, zapewniając przepływ danych i zdarzeń.