Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 353

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 347 348 349 350 351 352 < 353 > 354 355 356 357 358 359 .. 404 >> Следующая

754 ________________________________________________________________- Практический пример

устанавливается взаимно однозначное соответствие, которое должно поддерживаться нашей реализацией:

public intU Votes

Значения, хранящиеся в свойстве votes, могут изменяться только с помощью метода Vote о, поэтому данное СВОЙСТВО, так же как И свойства Question И Answers, будет использоваться в режиме “только чтение", и для него необходимо реализовать только предложение sret.

В классах, подобных данному, использование одного массива должно быть синхронизировано с использованием другого. Возможно, в приложении, предполагающем коммерческое использование, будет более предпочтительным создать отдельный класс Answer, в котором текст ответа и счетчик голосов будут более тесно привязаны друг к другу; не исключено также, что вы сможете отыскать какое-либо иное решение. Чтобы не усложнять пример, мы продолжим использовать два параллельных массива, что в данном случае нас вполне устраивает, поскольку мы очень аккуратно будем относиться к тому коду, который производит изменения в семействах.

Типичное использование

Будем считать, что теперь есть объектная модель, но как ее можно использовать? Достаточно часто мы будем обнаруживать пробелы в нашей разработке при рассмотрении вопроса о том, каким образом используются методы и свойства, поскольку это может приводить к возникновению очевидных проблем, в частности, к концептуальной путанице относительно того, каким образом работает сама модель (возможно, вам приходилось слышать о таких проблемах, как варианты использования, которые являются важным элементом объектно-ориентированного программирования). Рассмотрим простое консольное приложение, которое берет текущий опрос, выводит его и регистрирует голосование. Это позволит понять, работает ли модель с концептуальной точки зрения:

Poll myPoll = Poll.Current <)i

Console.WriteLine {myPoll.Question)t

for(int i=lj i<nyPoll.Answers.Length; i++)

( .

Console.Write (myPoll.Answers [i] + •),*

Console.WriteLine (щ/Foll.Votes Li] + ' voted');

}

MyPoll.Vote (2);

Co sole.WriteLine ('Vote registered against * + myPoll.Answers [2]};

Console.WriteLine (Poll.Votes [21);

Все выглядит просто замечательно; у нас есть простой и ясный путь, позволяющий считывать текущий опрос, выводить его и регистрировать процедуру голосования. Здесь используется myPoll.Awnswers.Length для определения количества ответов. Это выглядит довольно запутанным, поскольку совершенно неясно, используется ли в данном случае свойство Length, принадлежащее votes или Answers, поэтому следует избавиться от этой путаницы н ввести свойство АлккегСоипь. которое будет возвращать число ответов для данного варианта опроса:

public Int AnewerCount 11 Общее свойство класса Poll

Это приводит к некоторым изменениям в использовании класса poll и позволяет сделать интерфейс более аккуратным:
Практический пример 1 — web-сайт для проведения опросов_______________________________________755

Poll rayPoll = Poll,Current О;

Console.WriteLine {rayPoll.Question); for (int I.«If i<niyPoll .AnswereCount; ++i;

С

Console.Write {myPoll.Answers [il +

Console.WriteLine (myPoll.Votes [ij + ¦ votes');

}

MyPoll.Vote (2)

Console,WriteLine ('Vote registered against ' = myPoll.Answer [2J); ConaoleWriteLine (poll.Votes [2])j

Тестирование

Прежде чем двигаться дальше, создадим небольшое консольное приложение, которое будет тестировать класс Poll, У такого подхода есть два существенных преимущества. Во-первых, в процессе создания класса Poll всегда можно убедиться в том, что он работает. Во-вторых, можно понять, каким образом класс Poll

допускает свое использование из консольного приложения с учетом того, что оно создается прежде всего для использования в приложении ASP.NET.

Сначала мы создаем новое консольное приложение C# в Visual Studio.NET с именем Pol 1C (сокращение от Poll Command Line) (см, рис, слева).

Visual Studio.NET создаст проект консольного приложения и сгенерирует файл с именем Classl.се, где находится статический метод Main о, который начнет выполняться в момент запуска файла данного консольного приложения с расширением .ехе.

using system;

namespace PollC С

/// <summary>

/// Общее описание для хлассв1 /// </аишюгу> class Classl {

static void Main (string [] (args) 1 <

It

/1 Действие: добавить ход для запуска приложения

П

)

}

>

Теперь добавим в консольное приложение требуемый код, который позволит считывать активный в настоящий момент опрос, выводить его вместе со счетчиками голосов, регистрировать процесс голосования и выводить всю информацию снова. Для этого потребуется внести в метод Main о следующие изменения:

static void Main (string) [] args) t

Poll myPoll - Poll.Current ()j
756

Практический пример

DisplayPoll (myPoll); myPoll.Vote (2);

Console.WriteLine ('Vote registered against * + myPoll, nswera [2]; DisplayPoll (myPoll)t

)

Приведенный код очень напоминает тот код, который нам встретился в тот момент, когда мы рассматривали типичное использование класса Poll. В первую очередь мы создаем объект с именем myPoll, затем используем метод Dispiaypoiio для вывода опроса на экран (мы будем рассматривать этот метод немного позже), затем регистрируем поданный голос посредством метода vote о класса Pell и, наконец, поаторно обращаемся к методу DisplayPollо для вывода состояния опроса, Если мы все сделали правильно, то счетчик голосов для второго ответа после этого должен увеличиться.
Предыдущая << 1 .. 347 348 349 350 351 352 < 353 > 354 355 356 357 358 359 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.