AlexanderChibirev / OOD-Java-Kotlin-AndroidApps

0 stars 0 forks source link

[MVP] Code Review #6

Open a-ovch opened 7 years ago

a-ovch commented 7 years ago

Переход на MVP:

  1. Разрабатываем два уровня моделей:
  1. Перенос логики, относящейся к отображению во View. Например: выделение фигуры, отрисовка рамки;

  2. Переделать добавление, удаление, перемещение и ресайз на новую архитектуру.

Пример перемещение фигуры:

1) View отслеживает выбор фигуры пользователем:

2) Пользователь начал перемещение:

3) View вызывает метод у Presenter, который сигнализирует о событии перемещения фигуры, передавая при этом все необходимые данные;

4) Presenter обрабатывает событие перемещения:

Обратить внимание:

  1. В моделях минимизировать количество конструкций switch-case, а также условных операторов, обрабатывающих ситуацию для какой-то конкретной фигуры;

  2. Код в Domain model должен быть максимально абстрактным: работаем на уровне интерфейса IShape.

a-ovch commented 7 years ago
  1. Создать класс ShapeDiagram, инкапсулирующий логику по вычислению выделения по указанной фигуре;

  2. Переименовать PainterCanvas;

  3. Не передавать в presenter событие отрисовки.

  4. Переместить команды.