2009-05-07 2 views
9

Мой вопрос состоит из двух частей:Организация GUI код

  • Кто-нибудь есть какие-либо советы или ссылки на некоторые документы в Интернете о том, как писать GUI код, который легко читать, писать и поддерживать?

    Пример.

    Я нахожу, что чем более обширны мои формы графического интерфейса, тем я получаю длинный список довольно коротких методов обработчика событий. Если я попытаюсь добавить какие-либо частные вспомогательные методы, они просто теряются в перетасовке, и мне постоянно приходится прокручивать страницу, чтобы следовать одной линии мысли.


  • Как можно легко управлять настройками через приложения?

    Пример.

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

Спасибо!

+0

Я тоже хотел бы услышать совет от экспертов. Шаблоны, которые я должен изучить, книги, которые я должен прочитать, рамки, которые я должен изучить, все это было бы замечательным советом для кого-то нового для программирования графического интерфейса, такого как я. –

+0

На каком языке вы работаете? –

+0

Я достиг точки максимального разочарования, работающего в Borland C++, но это то, что я думаю, с которым я всегда боролся. – jeremyalan

ответ

2

Если вы используете WPF, вы можете прочитать Composite Application Guideance for WPF.

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

+0

К сожалению, я не работаю с WPF, но я обязательно его проверю, и, возможно, я смогу извлечь какую-то полезную информацию и применить ее к моему приложению. – jeremyalan

0

Вы должны обязательно посмотреть на Jeremy Miller's guide на богатый дизайн клиента. Это неполно, но я считаю, что он пишет книгу по этому вопросу.

Другой блог, который вы должны проверить, - Rich Newman's. Он пишет о Composite Application Block, который представляет собой руководство по лучшей практике MS о том, как структурировать богатых клиентов.

Вы также можете прочитать this book, который является очень легким, но дает вам несколько хороших идей.

5

Некоторые рекомендации по первому вопросу, с точки зрения ОО:

  • Разбейте большие классы на более мелкие. У этой панели есть куча достаточно модульных подпанелей? Сделайте меньший класс для каждой подпанели, а затем еще один класс более высокого уровня поместил их все вместе.
  • Уменьшить дублирование. У вас есть два дерева, которые разделяют функциональность? Сделайте суперкласс! Все ли обработчики событий делают что-то подобное? Создайте метод, который они все называют!

Второй вопрос. Я вижу два способа сделать это:

  • Слушатели. Если многие компоненты должны реагировать на изменения, которые произошли в одном компоненте, необходимо, чтобы этот компонент запускал событие.
  • Глобальные переменные. Если многие компоненты читают и записывают одни и те же данные, сделайте их глобальными (однако вы делаете это на выбранном вами языке). Для дополнительной полезности объедините два подхода и позвольте компонентам прослушивать изменения в глобальном объекте данных.
Смежные вопросы