Допустим, я создаю простую визуализацию MVC JavaScript.
Контроллер для конкретного представления визуализации может выглядеть примерно так:
Controller {
model
year
width
height
xScale
yScale
render() {
this.year = this.model.get("year")
this.width = this.model.get("width")
updateScales();
draw A, B, C
}
updateScales() {
this.xScale = this.width ...
}
}
Как видите, каждый разметод рендеринга контроллера вызывается, он устанавливает некоторые атрибуты и обновляет «производные атрибуты масштаба».
У меня есть два вопроса относительно этого кода:
1) Это плохая практика, чтобы методы класса работали непосредственно с атрибутами класса?Должны ли они скорее возвращать значение и иметь подпись?
2) Предположим, я хотел бы оптимизировать этот код так, чтобы updateScales вызывался только при изменении ширины или высоты.Каков хороший - и достаточно общий способ - обработки такой логики, связанной с изменением атрибутов модели?