Прагматизм или чистота - должны ли мы полагаться на структуру GUI для хранения состояния программы? - PullRequest
3 голосов
/ 03 февраля 2010

Когда-то мне было поручено создать пользовательский элемент управления C #. Это контроль с кучей складных секций. Элемент управления, который пользователь может щелкнуть по нему для переключения между состоянием свертывания / развертывания, является элементом управления меткой. Прямо рядом с ним находится элемент управления изображением, который изменяет состояние, чтобы указать, свернут или разворачивается конкретный раздел. Где-то в элементе управления мне нужна функция для возврата состояния любого конкретного раздела. Вопрос в том, должна ли функция возвращать состояние, основанное на состоянии элемента управления изображением, или мы должны ввести дополнительную переменную, которая будет хранить это состояние, с дополнительным риском того, что оно будет не синхронизировано с текущим состоянием?

Ответы [ 2 ]

3 голосов
/ 03 февраля 2010

В большинстве случаев, когда люди приходят к «чистому» решению подобных проблем, они просто скрывают связь, а не удаляют ее. Связь обычно представляет существенную сложность проблемы, которую они пытаются решить. Поскольку его нельзя удалить, его можно реализовать простым способом.

Ваш случай не является исключением. Если только вы не думаете, что есть достойный шанс, что метод получения состояния элемента управления изображением изменится в будущем (маловероятно, если вы используете стабильную среду), используя дополнительную переменную, которая всегда должна иметь то же значение, что и контроллер изображения. состояние просто заменяет явную связь на слегка скрытую, неявную связь. Это ничего не дает и увеличивает сложность и, следовательно, вероятность ошибки.

1 голос
/ 03 февраля 2010

Резервирование бессмысленно. Я говорю, просто прочитайте состояние изображения, если это можно считать эмпирическим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...