Лекция Основные понятия ооп 7




Скачать 1.4 Mb.
Название Лекция Основные понятия ооп 7
страница 9/32
Дата публикации 25.05.2014
Размер 1.4 Mb.
Тип Лекция
literature-edu.ru > Информатика > Лекция
1   ...   5   6   7   8   9   10   11   12   ...   32

6. Некоторые характеристики компонент программ

6.1 Поведение и состояние


Компоненты характеризуются поведением и состоянием. Поведение – это то, что должна делать компонента (обязанности компоненты), а состояние – это внутренняя информация компоненты, необходимая ей для выполнения предписанных обязанностей. Полное описание поведения компоненты иногда называется протоколом.

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

Не все компоненты обязаны иметь состояние. Например, у компоненты MainWin скорее всего не будет никаких внутренних данных. Но большинство компонент характеризуется и поведением, и состоянием.

6.2 Экземпляры и классы


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

Термин "класс" используется для описания множества сущностей с похожим поведением. Конкретные представители класса называются объектами. Очень важно заметить, что поведение ассоциировано с классом, а не с индивидуальными объектами. Т.е. все объекты данного класса воспринимают одни и те же сообщения и выполняют их обработку одинаково. С другой стороны, состояние является уникальной характеристикой объекта. Это видно на примере различных объектов Deal. Все они могут выполнять одинаковые действия (редактирование, вывод на экран, печать), но используют различные данные.

6.3 Скрытие информации


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

Допустим, семь компонент ежедневника разрабатываются разными программистами. Разработчик компоненты Date должен обеспечить просмотр дел, назначенных на заданную дату и выбор отдельного дела. Для этого компонента Date просто вызывает функцию browse(), привязанную к компоненте Deal Database. Эта функция возвращает из базы данных набор дел на заданную дату. Это справедливо независимо от того, как внутри Deal Database реализована работа с базой данных.

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

Напомним принципы, сформулированные Дэвидом Парнасом:

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

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

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

6.4 Типы компонент


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

Каждой обязанности, записанной на CRC-карточке компоненты, присваивается имя. Эти имена станут затем названиями функций или методов. Вместе с именами определяются типы параметров, передаваемых функциям. Затем описывается вся информация, содержащаяся внутри компоненты. Если компоненте требуются некие данные для выполнения конкретного задания, их источник (параметр функции, глобальная или внутренняя переменная) должен быть явно описан.

6.5 Имена компонент


Имена, связанные с различными действиями, должны тщательно выбираться. Они должны быть внутренне совместимы, значимы, коротки и содержательны.

Можно привести несколько положений общего характера, регулирующих выбор имен:

  • Используйте имена, которые легко произнести вслух;

  • Чтобы отметить начало слова в составном имени, надо применять заглавные буквы или символы подчеркивания (напр., CardReader или Card_Reader вместо cardreader).

  • Тщательно проверяйте сокращения (напр., непонятно, что значит TermProcess – процесс, связанный с терминалом компьютера (terminal process) или нечто, что прекращает выполнение процесса (terminate process)).

  • Избегайте многозначности имен (напр., функция empty() – выполняет проверку того, что некоторый объект пуст, или же удаляет все содержимое объекта и делает его пустым?).

  • Не используйте цифры в именах (легко перепутать 0 и O, 1 и l, 2 и Z, 5 и S).

  • Логическим функциям присваивайте такие имена, чтобы было ясно, как интерпретировать true и false (напр., PrinterIsReady ясно показывает, что значение true соответствует принтеру в рабочем состоянии, а PrinterStatus является гораздо менее точным).

После того, как для всех действий выбраны имена, CRC-карточка каждой компоненты переписывается заново с указанием имен функций и списка параметров (рис. 2.5). Но пока остается не установленным, как именно каждая компонента будет выполнять указанные действия.

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


Компонента Date (один день ежедневника)

Сотрудничающие
компоненты


Содержит информацию о делах, запланированных на конкретный день

Date( year, month, day )

Создает новый экземпляр
типа Date

Display()

Выводит информацию обо всех встречах на данный день

Edit()

Редактирует информацию общего характера о заданном дне

ViewPersons()

Показывает более подробную ин формацию о людях, с которыми назначены встречи на этот день

Менеджер планирования

База данных дел


Рис. 2.5. CRC-карточка для компоненты Date

1   ...   5   6   7   8   9   10   11   12   ...   32

Похожие:

Лекция Основные понятия ооп 7 icon Лекция I и проблема языка и сознания лекция II 31 слово и его семантическое...
Монография представляет собой изложение курса лекций, про* читанных автором на факультете психологии Московского государственного...
Лекция Основные понятия ооп 7 icon Календарно-тематическое планирование 7 класс. Новая история (28 часов). №
Основные понятия: традиционное общество, индустриальное общество, общество; предпринимательский дух, ойкумена, реконкиста, конкиста....
Лекция Основные понятия ооп 7 icon 49. Философия Шопенгауэра. Основные понятия и особенности

Лекция Основные понятия ооп 7 icon Перечислите основные понятия и определения, которые используются в парольных системах?

Лекция Основные понятия ооп 7 icon Вид занятия (ч)
Предметная область и основные понятия психологии педагогической и учебной деятельности
Лекция Основные понятия ооп 7 icon Тема урока Количе-ство часов
Лекция. Введение. Судьба России в 20 веке. Основные направления, темы и проблемы русской литературы 20 века
Лекция Основные понятия ооп 7 icon Основные понятия
Программа для общеобразовательных учреждений под редакцией В. Я. Коровиной. 5-11 классы. Базовый уровень. М. «Просвещение», 2009
Лекция Основные понятия ооп 7 icon Лекция №1. Введение. Элементы дифференциальной геометрии. 2
Лекция №5. Множества Жюлиа, множество Мандельброта и их компьютерное представление. 18
Лекция Основные понятия ооп 7 icon Управление качеством продукции
Качество продукции: основные понятия, показатели Причины, обусловившие изменение отношения к качеству
Лекция Основные понятия ооп 7 icon Рассмотрим несколько физических явлений, ранее описанных с использованием...
Следовательно, явления, которые ранее описывались с использованием понятия «масса» и ее свойств, теперь должны описываться на основе...
Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции