В моем приложении View
наблюдает Model
изменения.Controller
отвечает за обработку событий, отправляемых View
и обновление Model
.
. Для примера, предположим, у меня есть два представления.Во-первых, InputView
, содержит два элемента JSpinner
(Spinner1
и Spinner2
).Во-вторых, ResultView
, содержит JLabel
со значениями из счетчиков.И как дополнительное ограничение, мы хотим, чтобы значения Spinner2
зависели от значений Spinner1
.Допустим, минимальное значение в Spinner2
должно быть 2x
, текущее значение Spinner1
.
При изменении значения Spinner1
Controller
получает ChangeEvent
и обновляет Model
.Так как мы также должны отрегулировать значение Spinner2
, будет отправлено другое ChangeEvent
, а Model
будет обновлено во второй раз.Проблема этой схемы в том, что с каждым Model
обновлением наблюдаемое View
обновляется.Таким образом, в этом примере View
будет обновляться 3 или 4 раза вместо одного (Spinner1
изменение, Spinner2
изменение минимального значения, Spinner2
изменение значения).Это вызывает мерцание.
Как убедиться, что View
обновляется только один раз, когда все изменения сделаны?