Книга: Программирование мобильных устройств на платформе .NET Compact Framework

Листинг 5.3. Явное изменение состояний приложения (удачный подход)

Листинг 5.3. Явное изменение состояний приложения (удачный подход)

string m_someImportantInfo;
//Определить состояния, в которых может находиться приложение
enum MyStates {
 step1, step2
}
//Главная функция, которая вызывается
//всякий раз, когда возникает необходимость
//в изменении состояния приложения
void ChangeApplicationState(MyStates newState) {
 switch (newState) {
 case MyStates.step1:
  textBox1.Visible = true;
  listBox1.Visible = false;
  break;
 case MyStates.step2:
  m_someImportantInfo = textBox1.Text;
  textBox1.Visible = false;
  listBox1.Visible = true;
  break;
 }
}
//Пользователь щелкнул на кнопке, желая перейти к выполнению
//следующего шага, предусмотренного в данном приложении. Скрыть
//текстовое окно и отобразить окно списка в отведенном для этого месте
private void button1_Click(object sender, System.EventArgs e) {
 //Вызвать главную функцию, осуществляющую изменение состояния
 ChangeApplicationState(MyStates.step2);
}
//Код, выполняющийся при загрузке формы
private void Form1_Load(object sender, System.EventArgs e) {
 //Вызвать главную функцию, осуществляющую изменение состояния
 ChangeApplicationState(MyStates.step1);
}

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

Оглавление книги


Генерация: 0.045. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз