Если у меня есть настройка, доступная через пункт меню или окно конфигурации, которое может измениться во время выполнения, например, «жирный текст вкл/выкл»; Каковы некоторые хорошие способы убедиться, что все применимые компоненты знают о значении этого параметра?
Каковы хорошие способы управления настройками в приложениях с графическим интерфейсом?
Ответы (2)
Вы не указали особенности языка реализации, поэтому ответ будет несколько общим. Предполагая, что ваш графический интерфейс написан на языке, который поддерживает даже модель (например, Java), просто создайте обработчик событий для любого компонента, на который должны влиять настройки и который срабатывает при событии «настройка изменена». Затем вызовите такое событие из окна конфигурации настроек. Не забудьте перерисовать, когда все компоненты будут обновлены (или перерисовывать по мере обновления каждого компонента).
Дополнительным моментом является использование общих подкомпонентов. Например, если вы используете текст метки с определенным настраиваемым шрифтом, используйте общий класс «метка с настраиваемым шрифтом», который гарантирует, что вам никогда не потребуется назначать указанный выше прослушиватель событий для каждой создаваемой вами метки.
Если будет много настроек, я внедрил базу данных sqlite для хранения изменений для меньшего количества изменений, пара ключ-значение в файле достаточно хороша. Затем реализуйте шаблон проектирования наблюдателя, чтобы при внесении любых изменений вызывался список классов графического интерфейса для внесения изменений.