использовать геттеры во ViewModel вместо подписки на модель - PullRequest
0 голосов
/ 31 августа 2018

На этой неделе я узнаю, что мы можем использовать геттеры / сеттеры в javascript. Поэтому я попытался использовать его в своем текущем коде.

Пока мой ViewModel регистрируется в модели, чтобы получать уведомления об изменении модели.

Используя геттеры, я могу получить RID и просто вернуть значение поля в модели в viewModel.

например:

Model = {
field: aValue
}

ViewModel = {}
 Object.defineProperty(ViewModel , aField{
      get: function () {
        return Model.field;
             });
         }
    });

Я прав? это нормально?

1 Ответ

0 голосов
/ 02 сентября 2018

SynchroDynamic дает хорошее представление о читаемости кода, а также о ползучей сложности, которая может возникнуть по мере развития вашей системы.

Предположительно, вы используете какую-то платформу, которая предоставляет механизм для привязки данных. Привязка данных обычно представляет собой автоматический процесс, основанный на событиях изменения. Для двусторонней привязки source и target связанной пары должны инициировать события, если данные изменяются, а source и target должны также реагируйте на эти события (регистрируя их), чтобы данные оставались синхронизированными.

Am I right?

Да, вы правы, что можете (в том смысле, что это возможно) использовать get / set и т. Д. И отключить механизмы привязки данных каркасов.

is it ok?

Вероятно, нет, во всех, кроме самых тривиальных случаях.

1) Если вы используете платформу, которая поддерживает привязку данных, другие читатели вашего кода будут озадачены тем, почему вы выбрали такой подход, когда доступен совершенно хороший (и задокументированный) механизм.

2) Как указывает SynchroDynamic, вещи быстро выйдут из-под контроля, когда количество представлений и моделей представления увеличится, и вам придется вручную отслеживать получение / наборы.

3) Модульное тестирование также может стать намного сложнее!

...