Что вы считаете лучшей практикой проектирования взаимодействия сигнала/слота для обновления значений элементов в классе?
Например, рассмотрим переменную-член, представленную в пользовательском интерфейсе. Пользователь изменяет значение в пользовательском интерфейсе. Отношение сигнал/слот существует для автоматического обновления переменной-члена с помощью функции обновления переменной-члена.
Мы также хотим, чтобы изменения в переменной-члене автоматически обновлялись в пользовательском интерфейсе, чтобы связь сигнал/слот была обратной. При обновлении переменной-члена с помощью функции обновления сигнал запускает обновление пользовательского интерфейса.
Как не допустить, чтобы они стали круговыми? Это так же просто, как сверка нового значения с текущим значением при вызове функции обновления переменной-члена и отправка сигнала для обновления пользовательского интерфейса только при наличии разницы?
Или... есть ли более элегантный способ сделать это?