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

С# - Ватсон К.

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


Возможные классы

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

Уровань представления

Window* Forma, ASRNET, консольное приложение, web-службы и т. д.

Уровень бизнес-логики

Классы)

Уровень данных

XML, SQL Server, Orade, Microsoft Access, классы н т. д.
750

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

все требования и перечислим все имена существительные, которые мы обнаружим в описании классов/объектов нашего приложения.

? Web-сайт
? Опрос
? Вопрос
? Ответ
? Посетитель сайта
? Голосование

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

Класс Poll (опрос)

Когда мы обсуждаем понятие опроса, мы говорим о весьма специфическом наборе данных:

? Единственный вопрос

? Множество ответов

? Подсчет голосов для каждого из возможных ответов

Не следует забывать, что в XML-файле может находиться несколько различных вариантов опроса, и нужно быть в состоянии создавать объект poll для каждого из вариаитов.

Когда мы представляем себе, какие данные придется хранить в объектах poll, рассмотрим какие функциональные возможности потребуются от такого объекта:

? Голосование — кажется логичным предусмотреть метод vote о (голосование), который будет регистрировать выбор одного из ответов при проведении опроса.

? Получение вопроса — необходимо предусмотреть возможность доступа к вопросу, чтобы вывести его на web-странице.

? Получение ответа — необходимо считывать список возможных

при проведении опроса ответов, которые будут выводиться на странице для выбора посетителями сайта.

? Получение числа голосов для данного варианта ответа — необходимо предусмотреть способ выявления проголосовавших за данный вариант.

Это будет использоваться для вывода количества голосов по каждому варианту после голосования очередного посетителя.

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

Класс Question (вопрос)

Что представляет из себя вопрос? Насколько известно из наших требований, это просто строка типа “Какую платформу вы используете?". Поскольку это так просто, то можно не утруждать себя реализацией вопроса в качестве объекта,
Практический пример 1 — web-сайт для проведения опросов_________________________________751

а вместо этого представить его в качестве поля какого-либо другого класса. Окончательное решение мы примем, когда будем рассматривать отношения между классами.

* Класс Answer (ответ)

Как и вопрос, ответ представляет из себя просто строку; однако не забывайте, что, хотя дня каждого опроса существует только один вопрос, для него — и для каждого опроса— имеется несколько вариантов ответа. Следует также принять во внимание то, что каждый вариант ответа предполагает сохранение числа поданных за него голосов. Если бы мы пришли к выводу о необходимости реализации ответа в качестве класса, то нам следовало бы предусмотреть свойства для текста самого вопроса и для хранения числа поданных голосов, а также включить метод voce о. Окончательно решение будет принято нами в следующем разделе.

Класс Vote (голосование)

Что такое голос? Это либо да, либо нет. Существует другой вариант, при котором можно говорить о голосовании как о классе "Votes"; в этом случае он мог бы содержать счетчики числа голосов для каждого нз имеющихся ответов. При таком варианте сценария класс votes представлял бы собой нечто большее, чем просто некий массив. В этом случае представляется бессмысленным создавать класс, который будет представлять из себя всего лишь простой массив.

Отношения между классами

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

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

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

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

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

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

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