Sobes.tech
Middle

Какво е архитектурният модел MVP?

sobes.tech AI

Отговор от AI

MVP (Model-View-Presenter) е архитектурен шаблон за разделяне на бизнес логиката, данните и потребителския интерфейс.

Ключови компоненти:

  • Model: Представлява данните и бизнес логиката. Няма знания за View или Presenter.
  • View: Изобразява данните, предоставя потребителски интерфейс и пренасочва действията на потребителя към Presenter. Не съдържа бизнес логика. View е пасивен и само показва данните, получени от Presenter.
  • Presenter: Действа като посредник между Model и View. Обработва събитията на потребителския интерфейс, извлича данни от Model и актуализира View. Presenter съдържа логиката за представяне, но не бизнес логиката. Управлява състоянието на View.

Взаимодействие:

  1. Потребителят взаимодейства с View.
  2. View делегира действието към Presenter.
  3. Presenter обработва действието:
    • Актуализира Model, ако е необходимо.
    • Изисква данни от Model.
    • Актуализира View с новите данни.

Предимства:

  • Подобрена тестируемост (Presenter и Model могат да бъдат тествани независимо от View).
  • Разделяне на отговорностите.
  • По-добра поддръжка.

Пример (схема):

// Модел
class DataModel {
    getData() {
        // ... логика за получаване на данни ...
        return { message: "Здравей от модела!" };
    }
}

// Представяне (псевдо UI код)
class TextView {
    display(data) {
        // Обновяване на текста на екрана
        console.log(data.message);
    }

    onClickButton(handler) {
        // Прикачване на обработчик към бутона
    }
}

// Презентър
class Presenter {
    constructor(model, view) {
        this.model = model;
        this.view = view;
        this.view.onClickButton(this.handleButtonClick.bind(this)); // Връзка на събитието
    }

    handleButtonClick() {
        const data = this.model.getData();
        this.view.display(data);
    }
}

// Използване
const model = new DataModel();
const view = new TextView(); // Реално UI
const presenter = new Presenter(model, view);