Программирование >>  Дополнительные возможности наследования 

1 ... 189 190 191 [ 192 ] 193 194 195 ... 265


Резюме

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

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

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

Вопросы о ответы

Чем объектно-ориентированный анализ и проектирование фундаментально отличаются от других подходов?

До разработки объектно-ориентированной технологии аналитики и профаммисты бьши склонны думать о профаммах как о фуппах функций, работающих с данными. Объектно-ориентированное профаммирование рассматривает интефированные данные и функции как самостоятельные единицы, содержащие в себе и данные, и методы манипулирования ими. При процедурном профаммировании внимание сконценфировано на функциях и их работе с данными. Говорят, что профаммы на Pascal и С - коллекции процедур, а профаммы на С++ - коллекции классов.

Является ли объекгно-ориентированное профаммирование той палочкой-вьфучалочкой, которая решит все проблемы профаммирования?

Нет, этого никогда и не ждали. Однако на современном уровне фебования к про-фаммным продуктам объектно-ориентированные анализ, проектирование и профаммирование обеспечивают профаммистов средствами, которые не могло предоставить процедурное профаммирование.

Является ли С++ совершенным объектно-ориентированным язьком?

С++, если сравнивать его с другими альтернативными объектно-ориентированными языками профаммирования, имеет множество преимуществ и недостатков. Но одно из безусловных преимуществ состоит в том, что это самый популярный объектно-ориентированный язык профаммирования на Земле. Откровенно говоря, больщинство профаммистов рещают работать на С++ не после изнурительного анализа альтернативных объектно-ориентированных языков. Они идут туда, где происходят основные события, а в 90-х основные события в мире профаммирования связаны с С++. Тому есть веские причины. Конечно, С++ может многое предложить профаммисту, но эта книга существует - и бьюсь об заклад, что вы читаете ее, - из-за того, что С++ выбран в качестве языка разработки в очень многих крупных корпорациях, таких как Microsoft.



Коллоквиум

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

КоншроАьныв вопросы

1. Какая разница между объектно-ориентированным и процедурным программированием?

2. Каковы этапы объектно-ориентированного анализа и проектирования?

3. Как связанны диаграммы последовательности и сотрудничества?

Упражнвнпя

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

2. Какие объекты и какие классы потребуются для имитации этой ситуации?

3. Усложним ситуацию из упражнения 1. Предположим, что есть три вида водителей: таксисты, переезжающие переход на красный свет; иногородние, которые едут медленно и осторожно; и частники, которые ведут машины по-разному, в зависимости от представлений о своей крутизне .

4. Также есть два вида пешеходов: местные, которые переходят улицу, где им заблагорассудится, и туристы, которые переходят улицу только на зеленый свет.

5. А кроме того, есть еще велосипедисты, которые ведут себя то как пешеходы, то как водители.

6. Как эти соображения изменят модель?

7. Вам заказали программу планирования времени конференций и встреч, а также бронирования мест в гостинице для визитеров компании и для участников конференций. Определите главные подсистемы.

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



1Гень1д-й

ШаОдоны

у программистов, использующих язык С++, появился новый мощный инструмент - параметризованные типы , или шаблоны. Шаблонами настолько удобно пользоваться, что стандартная библиотека шаблонов (Standard Template Library - STL) была принята в состав определений языка С++.

Итак, сегодня вы узнаете:

Что такое шаблоны и как их использовать

Как создать класс шаблонов

Как создаются шаблоны функций

Что представляет собой стандартная библиотека шаблонов (STL) и как ею пользоваться

Что таков шаблоны

При подведении итогов за вторую неделю обучения вы узнали, как построить объект Partstist и как его использовать для создания объекта PartsCatalog. Если же вы хотите воспользоваться объектом Partstist, чтобы составить, например, список кошек, у вас возникнет проблема: объект Partstist знает только о запчастях.

Чтобы решить эту проблему, можно создать базовый класс tist и произвести из него классы Partstist и Catstist. Затем можно вырезать и вставить существенную часть класса PartsList в объявление нового класса CatsList. А через неделю, когда вы захотите составить список объектов Саг, вам придется опять создавать новый класс и снова вырезать и вставлять .

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

Благодаря шаблонам, эта проблема легко решается, а с принетием стандарта ANSI шаблоны стали неотъемлемой частью языка С++, подобно которому они сохраняют тип и очень гибки.



1 ... 189 190 191 [ 192 ] 193 194 195 ... 265

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика