я могу думать только о двух хороших причин, за то, что кнопка применения:
- Изменения не могут быть применены мгновенно, но будет блокировать GUI для заметному количества времени.
- Изменения только придают смысл (как транзакция).
Ничего из этого не распространено. Исторически 1 раньше было правдой практически для любого варианта. Но в наши дни компьютеры работают быстрее, а 1 - редко. Если эффект измененного можно увидеть мгновенно, почему кто-то не хочет этого? Таким образом, gui (но часто не код) можно упростить, пропустив шаг применения. Я не думаю, что очень часто для пользователя действительно нужна кнопка отмены, отчасти потому, что это неоднозначно. Что я должен ожидать, если я сделаю одно изменение, применим, сделаю другое изменение и отменим отмену? Будет ли первое изменение отменено (в большинстве приложений ответ - нет, потому что это проще реализовать)?
Если да, то в этом случае есть кнопка Apply, тогда все будет отменено, а затем нажмите OK/отменить в любом случае? Или нам нужно рассмотреть еще один вариант, что окно закрыто, и в этом случае первое изменение сохраняется, но второе возвращается?
Если нет, то в основном применяются закладки, которые будут возвращены, чтобы отменить нажатие. Но действительно ли такое сложное поведение действительно необходимо в любом случае использования в реальной жизни?
Правильно ли это связано с историческими причинами, поскольку пользователи (как полагают) ожидают этого? Я видел, что пользователи всегда нажимают, а затем ОК. Зачем? Возможно, только потому, что GUI слишком сложный. Или потому, что не уверены, что «применить» означает «применять и отклонять диалог» (что он делает в некоторых приложениях), и что ОК может не применять изменения (я видел багги-приложения, где ОК просто закрывает окно без применения и, возможно, они есть тоже). По крайней мере, я не думаю, что пользователи в целом придерживаются точной логики этих сложных вариантов, поэтому они не нуждаются в ней, и она не обязательно должна быть там.Люди склонны в основном различать «положительные» (да, нормально, идти вперед, применять) и «отрицательные» (нет, отменять, отменять, возвращать) действия - это диалоги, имеющие более одного из них либо требуют большего доступа от пользователя. Интересно, что обмен одним позитивистским действием с другим не влияет на восприятие пользователей. Если диалог с кнопками yes/no изменен на ok/cancel, многие пользователи даже не заметят.
Что касается юзабилити (что гораздо важнее ИМХО). Поддержание работоспособности мгновенного применения может быть очень грязным, если сделано неправильно, но также очень чистым и поддерживаемым, а затем сделано правильно. Если приложение написано с применением подхода «все-в-одном», обычно существует одна функция. Вызов такой функции для каждого небольшого изменения, конечно, не очень эффективен. То, что я видел это, часто решается путем разделения функции на несколько разных функций для применения разных вещей, в идеале одна специализированная функция для всех видов изменений, которые могут быть сделаны. Это сделает приложение гораздо более отзывчивым, но ужасно для поддержания. Так что не ходи туда. Оптимальным решением является использование MVC (Model-View-Controller) и создание модели для каждого элемента конфигурации и привязка их к полям в форме конфигурации, а также к соответствующим частям приложения (и к хранилищу конфигурации, конец, чтобы каждое изменение автоматически сохранялось). Если в рассматриваемой среде нет MVC, определенно стоит написать ее.
Я почти уверен, что это дубликат, но тем не менее эта тема аргументирована и в конечном итоге бесполезна, поскольку правильный ответ всегда «делает то, что является стандартным для данной платформы, на которой вы находитесь». –
Я был бы более чем счастлив прочитать целую дискуссию по этой теме, однако я не смог ее найти. Я задал этот вопрос, чтобы спросить мнение людей, и поскольку это не настоящий вопрос, я не ожидаю получить точные ответы. Кроме того, это был бы не первый «бесполезный» вопрос здесь. –
Отношение «хорошо, что это уже произошло» не является хорошим, или, на мой взгляд, оправданием чего-либо. Я ценю, что вы можете быть заинтересованы в этой области, и я надеюсь, что вы найдете нужную вам информацию. –