Sobes.tech
Назад к вопросам
Junior — Middle
66

Можешь объяснить основные компоненты архитектурного паттерна Model-View-Controller?

Компании, где спрашивали
WildberriesWildberries

Ответ от нейросети

sobes.tech AI

Архитектурный паттерн Model-View-Controller (MVC) разделяет приложение на три основных компонента:

  • Model (Модель): отвечает за данные и бизнес-логику. Модель хранит состояние приложения и управляет данными, например, загружает их из базы или API.

  • View (Представление): отвечает за отображение данных пользователю. View получает данные из модели и отображает их, а также реагирует на пользовательский ввод.

  • Controller (Контроллер): служит посредником между Model и View. Он обрабатывает пользовательские действия, обновляет модель и изменяет представление.

В iOS, например, UIViewController часто играет роль контроллера, управляя взаимодействием между моделью и представлением.

Пример:

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

class UserView {
    func displayUserName(_ name: String) {
        print("User name is: \(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)
    }
}

Такое разделение упрощает поддержку и расширение приложения.