Автоматически устанавливать свойства со стороны клиента - PullRequest
0 голосов
/ 04 ноября 2019

У меня небольшая дилемма. Рассмотрим следующую систему:

enter image description here

И следующий API:

IModule GetModule(string moduleName);
void SetModule(string moduleName);

Где каждый модуль содержит набор параметров.

Типичным рабочим процессом будет следующий:

  • Получить модуль (т. Е. Локальная копия на стороне клиента)
  • Изменить параметр (ы)интерес от этого модуля
  • Установите обновленный модуль (т.е. вызовите SetModule для обновления действительной системы через службу / прокси)

Теперь проблема, с которой я сталкиваюсь в этом рабочем процессечто, хотя Client1 изменяет параметры, второй клиент может что-то делать, основываясь на неверном предположении о внутреннем состоянии системы.

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

moduleA = GetModule(string moduleName);
moduleA.enable = true;    ->   But when doing this, the setter for this parameter is called to directly update the param value from within the system instead of the local copy.
...