Как вы реализуете сложную логику пользовательского интерфейса?

Я ищу лучшие практики для реализации сложной логики пользовательского интерфейса. Я работаю над приложением Windows Forms, но считаю, что должны быть общие шаблоны для решения этой проблемы на любой платформе.

У меня есть несколько элементов управления в моей форме, есть списки, кнопки, таблицы и древовидное представление . Итак, идея состоит в том, что в зависимости от «контекста» некоторые элементы управления включены, а другие отключены. Некоторые из них на данный момент могут предоставлять некоторые функции, а другие - нет.

В настоящее время это реализовано «как есть». Я обрабатываю события, проверяю наличие изменений (выбран новый узел дерева, выбрана пара узлов и т. Д.), А затем решаю, нужно ли отключить или включить некоторые элементы управления. Мне не очень нравится этот подход, потому что код формы выглядит слишком сложным. А если мне нужно добавить больше логики, все станет еще сложнее. Я действительно обеспокоен, так как мы достаточно гибки, и новые функции или множество изменений являются повседневной нормой.

Я собираюсь разделить всю эту логику на части (функции), где каждая функция - это объект, который знает как проверить его состояние и, в зависимости от этого состояния, включить или отключить соответствующие элементы управления.

На самом деле не хочу изобретать что-то новое и пытаться найти какие-либо хорошие идеи, которые широко используются. Пожалуйста, не рекомендуйте единый метод UpdateUI (), я считаю, что это ничего не изменит в долгосрочной перспективе.

Спасибо.

5
задан Andrey Agibalov 22 July 2011 в 15:44
поделиться