Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 6
На сайте нет зарегистрированных пользователей

Пользователей: 13,364
новичок: eqvufy
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование работы ЭВМ на GPSS + Пояснительная записка
Диплом RSA, ЭЦП, сертификаты, шифрование на C#
Компьютерный магазин на Turbo Pascal (База данных) + Пояснительная записка

ДОСТОИНСТВА И НЕДОСТАТКИ ООП. Что мы приобрели?


Благодаря использованию возможностей языка, нам удалось за основу документа взять стандартный контейнерный класс TSringList. Это самый общий пример эффективного программирования. Тщательно разработанный код для TStringList удалось использовать повторно. Как следствие, отпала необходимость создавать методы для добавления, удаления, доступа к элементу по номеру, хранения строк и связанных с ними объектов. Этот же механизм наследования позволил упростить и собственно нашу часть программирования.
Мы разработали лишь основу программы, но можем надеяться, что оставшаяся часть решения задачи существенно упростится. Во–первых определенные выше классы естественны для телеконференций, во–вторых все они производные от (являются разновидностью) документа, и их использование унифицировано: методы имеют одинаковый смысл и имена, а виртуальные методы позволяют не выяснять точный класс каждого объекта.
Что бы кто–либо другой мог воспользоваться нашими трудами, необходимо снабдить разработанные классы описаниями. Их структура оказалась как будто специально приготовлена для этого: необходимо описать лишь интерфейсную (public) часть TDoc, небольшие изменения в TTalk, TFileDoc и TConf, неплохо также привести пример создания, использования и уничтожения объекта каждого класса. Обратите внимание на то, что для пользователя документируется только интерфейсная часть, например, ничего не нужно объяснять о сохранении докладов. Доклад добавляется в конференцию и всё. Остальное будет сделано при сохранении конференции.
Мы скрыли поля данных и отгородили пользователя от неправильного вмешательства в наши объекты. Примером такого вмешательства может служить манипулирование полем FStored. Пользователю наших классов не позволено самостоятельно задавать значение этого поля. Сделав это для конференции, он столкнулся бы с ошибками. Теперь, если в программе обнаружена ошибка, мы отнесем ее в одну из категорий:
1. ошибка не связана с использованием TDoc или его потомков;
2. действия пользователя не соответствуют описанию наших классов;
3. допущена ошибка в описании;
4. ошибка в проектировании или кодировании нашей части программы.
Из–за ясности описаний пункты 2 и 3 проверить достаточно легко. Обсудим последний пункт в нашем списке.
Допустим удалось установить, что TFileDoc загружается правильно, а TConf с ошибкой. В этом случае главное внимание следует уделить методу TConf.LoadBody. Поскольку его тело содержит всего 11 строк, а первая, вторая и одиннадцатая строки правильные, можно рассчитывать, что с оставшимися восьмью мы справимся за разумное время. Если же наоборот, обнаружилось, что ошибка в TFileDoc.LoadBody, то после ее исправления автоматически заработает и TConf.
Таким образом, в результате наследования наши методы выполняют достаточно сложные действия, оставаясь короткими. С другой стороны, исправление ошибок в базовом классе уменьшает количество ошибок и в классах–потомках. Всё это позволяет быстрее получать правильно работающие программы.
Предположим далее, что возникла необходимость изменить содержание заголовка документа. В скольких процедурах нужно будет внести изменения? Скорее всего в двух: TDoc.LoadHdr и TDoc.Store — остальные изменятся автоматически. Эта устойчивость к изменениям — тоже результат проектирования.
Опубликовал Kest October 12 2011 13:38:48 · 0 Комментариев · 6065 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
PDJ_Anima
Программа рисует ...
Borland C++Builde...
Мод "проверочный ...
Язык программиров...
Mass Photo Upload
Интерактивный инт...
Платформа програм...
API (Применение A...
Программирование ...
Программа для рис...
Text3D
SUIPack
PCX
Indy in Depth Глу...
C# 2005 и платфор...
Х. М. Дейтел, П. ...
HTMLredaktor
DemoEdit [Исходни...
WinPopup

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97832
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10290
Turbo Pascal fo... 7373
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Что документировать
OpenGL. Пример рис...
Обработка принимае...
Параметры по умолч...
op(X,Y,Z)
Стандартные типы м...
Современное состоя...
Глава 5. Апартаменты
изучение основных ...
Предоставление сеа...
Задачи для проверки
для проведения сов...
Способ достижения ...
Программирование н...
• Какое имя присво...
Коды, исправляющие...
Зачем нужны виртуа...
Как представить чи...
Листинг 9.2. После...
Настройка сервера ...
Некоторые выводы в...
Как правильно раск...
Решение логических...
НАСЛЕДОВАНИЕ
Каковы шансы на ус...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?