Sobes.tech
Junior — Middle

Ar galite aprašyti, kaip MVC architektūroje sąveikauja modelio, vaizdo ir valdiklio komponentai?

sobes.tech AI

Atsakymas iš AI

MVC (Model-View-Controller) architektūroje komponentai sąveikauja taip:

  • Modelis: atsakingas už duomenis ir verslo logiką. Jis saugo programos būseną ir praneša kontroleriui arba vaizdui apie pakeitimus.

  • Vaizdas: rodo duomenis naudotojui. Jis gauna informaciją iš modelio ir atnaujina save keičiantis.

  • Valdiklis: priima naudotojo įvestį, ją apdoroja, keičia modelį ir nusprendžia, kokį vaizdą parodyti.

Pavyzdys:

  1. Naudotojas sąveikauja su sąsaja (Vaizdu), pvz., paspaudžia mygtuką.
  2. Valdiklis gauna įvykį, jį apdoroja ir galbūt keičia duomenis modelyje.
  3. Modelis atnaujina savo būseną ir praneša Vaizdui apie pakeitimus.
  4. Vaizdas atnaujina duomenų rodymą.

C# tai gali atrodyti taip:

// Modelis
public class Product {
    public string Name { get; set; }
}

// Valdiklis
public class ProductController {
    private Product model;
    private ProductView view;

    public ProductController(Product model, ProductView view) {
        this.model = model;
        this.view = view;
    }

    public void SetProductName(string name) {
        model.Name = name;
        view.Update(model);
    }
}

// Vaizdas
public class ProductView {
    public void Update(Product model) {
        Console.WriteLine("Produkto pavadinimas: " + model.Name);
    }
}

Taip MVC paskirsto atsakomybes, kas palengvina programos priežiūrą ir plėtrą.