Sobes.tech
Junior — Middle

Czy możesz wyjaśnić główne komponenty wzorca architektonicznego Model-View-Controller?

sobes.tech AI

Odpowiedź od AI

Wzorzec architektoniczny Model-View-Controller (MVC) dzieli aplikację na trzy główne komponenty:

  • Model: odpowiedzialny za dane i logikę biznesową. Model przechowuje stan aplikacji i zarządza danymi, na przykład ładując je z bazy danych lub API.

  • Widok: odpowiedzialny za wyświetlanie danych użytkownikowi. Widok otrzymuje dane z modelu i je wyświetla, a także reaguje na wejście użytkownika.

  • Kontroler: pełni rolę pośrednika między Modelem a Widokiem. Obsługuje działania użytkownika, aktualizuje model i zmienia widok.

Na przykład w iOS, UIViewController często odgrywa rolę kontrolera, zarządzając interakcją między modelem a widokiem.

Przykład:

class UserModel {
    var name: String
    init(name: String) {
        self.name = name
    }
}

class UserView {
    func displayUserName(_ name: String) {
        print("Nazwa użytkownika to: \(name)")
    }
}

class UserController {
    var model: UserModel
    var view: UserView

    init(model: UserModel, view: UserView) {
        self.model = model
        self.view = view
    }

    func updateUserName(to newName: String) {
        model.name = newName
        view.displayUserName(model.name)
    }
}

Taki podział ułatwia utrzymanie i rozbudowę aplikacji.