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

С# - Ватсон К.

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


myAnswerText = щуРо11.Answrere[3] ; n^Poll.VoteO) i

В данном случае для регистрации голоса используется метод vote о на объекте Poll. Также имеется свойство с именем Answers (ответы), которое обеспечивает доступ к семейству строк (возможно, хранящемуся в виде некоторого массива).
752___________________________________________________________________Практический пример

Если бы мы приняли решение создать класс Answer внутри класса Poll, то код, позволяющий выполнять те же самые действия, принял бы приблизительно следующий вид:

jnyAnswerText = Poll.Anewrere[2 .Text; V

myPoll.Answrers[3].vote О;

При желании можно записать его следующим образом:

шуАпянег = my Poll \nswrere[3J ;

myAnswerT ext Answer. Text i

' щуAnswer. VoteО ;

Отличие между двумя последними примерами заключается в том, что теперь семейство представляет собой семейство объектов Answer, каждый из которых обладает свойством Text (в котором содержится текст ответа) и методом vote о. С практической точки зрения совершено очевидно, что первый вариант является более аккуратным; он позволит не тратить силы н время на создание класса Answer. Дополнительным преимуществом является то, что позднее, когда встанет задача расширения приложения, нам придется работать с меньшим количеством классов, и в такой редакции приложение, скорее всего, окажется более просто сопровождать. В силу этих причин мы реализуем ответы и счетчики голосов и виде семейств, являющихся полями класса Poll, а не в виде отдельного класса Answer. На самом деле, если впоследствии возникнет необходимость в таком массе, то нам ничего не сможет помешать создать его, но на данном этапе мы оставим все простым и понятным.

Объектная модель

Объектная модель приложения для проведения опросов пока состоит из единственного класса — рои, который может быть представлен следующий образом:

? Метод — Vote о

? Свойство — Question

? Свойство — Answers [ ] (семейство)

? Свойство — votesп (семейство)

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

На данный момент имеется объект, который позволяет с успехом хранить сайт для проведения опросов, однако каким образом можно такие объекты создавать? Необходимо предусмотреть метод, позволяющий создавать объект Poll, который соответствовал бы активному в настоящий момент опросу. Воспользуемся для этой цели статическим методом, например, таким:

CurrentlyActiveFoll _ Poll.CmrentO г

Это приведет нас к объектной модели, которая может быть представлена следующим образом:

? Метод— vote ()

? Метод — currento (статический)
Практический пример 1 — web-сайт для проведения опросов__________________________________753

? СВОЙСТВО — Question

? Свойство — Answers[] (семейство)

? Свойство — votes [] (семейство)

Свойства и методы класса Poll

Рассмотрим сигнатуры каждого нз методов и свойств более внимательно, чтобы четко представлять, как они должны быть реализованы. В следующем разделе мы рассмотрим, каким образом класс может быть использован в типичной ситуации.

Метод Vote()

Метод vote о может получать целое значение и диапазоне от I до п, где п — это число ответов в данном опросе. Этот метод не возвращает значение:

public void Vote (int answer)

Статический метод Current()

Метод current () является статическим, поэтому доступ к нему осуществляется в помощью ссылки на имя класса, а не на имя экземпляра данного класса. Параметры у него отсутствуют, и он возвращает значение типа Poll, которое представляет опрос, активный в настоящий момент:

public static Poll Current ()

Свойство Question

Свойство Question возвращает строку, которая может быть использована для вывода вопроса посетителям web-сайта, напрнмер: “Какую платформу вы используете в работе?".

public string Question

В первой версии мы редактируем вопрос через XML-файл. Это означает, что данное свойство может использоваться в режиме "только чтение”, поэтому необходимо реализовать предложение get, а не sec.

Свойство Answers

Свойство Answers обеспечивает доступ к объекту, в котором содержится семейство ответов для опроса; при опросе по использованию операционных систем это могут быть ответы типа “Windows 2000", "Linux", “MacOS” н т. д. Поскольку нам известен размер семейства, а все входящие в него элементы имеют один и тот же тип, то представляется логичным воспользоваться типом стандартного массива и хранить ответы в виде массива строк:

public string I] Answers

Как и для свойства Question, все изменения в данные вносятся вручную посредством редактирования XML-файла, поэтому требуется реализовать только предложение get — это свойство также будет использоваться в режиме “только чтение”.

Свойство Votes

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

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

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

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

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