У меня проблема с дизайном, для которой, я уверен, существует шаблон проектирования, и я хочу знать этот шаблон и получить более подробную информацию о лучших методах его атаки.
У меня есть интерактивный интерфейс для ввода временного интервала. Этот временной интервал имеет ограничения на количество дней (d), часов (h), минут (m) и секунд (s):
d <= c (дано c) </p>
ч: м: с <= 5: 30: 00 </p>
В вышеприведенном интерфейсе вы можете вручную изменять ручки (те круглые датчики), чтобы получить значение для каждого параметра (есть 4 ручки, 3 концентрических и 1 независимый). Кроме того, вы можете редактировать текстовые поля самостоятельно, а регуляторы должны отражать ваши изменения. Конечно, когда вы поворачиваете ручки, вы получаете изменения в значениях во время вращения , а не после того, как ваше движение стабилизируется. Это означает, что происходит огромное количество событий и множество сложных случаев. Например, представьте, что h: m: s равно 4:38:00, а пользователь увеличивает часы. Вместо простого 5:38:00, это должно быть 0:08:00 помимо увеличения дней или 5:30:00, если день уже максимальный.
В настоящее время происходит то, что вся логика записывается в событии TextChanged
текстовых полей, а события ValueChanged
регуляторов просто изменяют текст в соответствующем текстовом поле, вызывая его событие TextChanged
. Таким образом, общий вопрос заключается в том, как можно справиться с таким сценарием - когда многие объекты меняют друг друга и зависят друг от друга по кругу ?? Обратите внимание, что при вращении ручки текстовое поле может отклонить изменение, таким образом переназначая предыдущее значение указателю ручки «при вращении».