Технологии программирования
Шрифт:
ВЫВОДЫ
• Процедурно-ориентированный и объектно-ориентированный подходы к программированию различаются по своей сути и обычно ведут к совершенно разным решениям одной задачи.
• Объектно-ориентированный подход помогает справиться с такими сложными проблемами, как:
— уменьшение сложности программного обеспечения;
— повышение надежности программного обеспечения;
— обеспечение возможности модификации отдельных компонентов программного обеспечения без изменения остальных его компонентов;
— обеспечение возможности повторного
• Методы объектно-ориентированного проектирования используют в качестве строительных блоков объекты.
• Принципы абстрагирования, инкапсуляции и модульности являются взаимодополняющими. Объект логически определяет границы определенной абстракции, а инкапсуляция и модульность делают их физически незыблемыми.
• Наследование выполняет в ООП несколько важных функций:
— моделирует концептуальную структуру предметной области;
— экономит описания, позволяя использовать их многократно для задания разных классов;
— обеспечивает пошаговое программирование больших систем путем многократной конкретизации классов.
• Классы из предметной (прикладной) области непосредственно отражают понятия, которые использует конечный пользователь для описаний своих задач и методов их решения.
• Идеальный класс должен в минимальной степени зависеть от остального мира. Каждый класс имеет набор поведений и характеристик, которые его определяют.
• При перестройке иерархии классов применяются четыре процедуры:
1) расщепление класса на два и более;
2) абстрагирование (обобщение);
3) слияние;
4) анализ возможности использования существующих разработок.
• Разработка проекта начинается с составления функциональной модели.
• Объектная модель представляет статическую структуру проектируемой системы (подсистемы).
• Динамическая модель системы представляется диаграммой последовательности и диаграммой состояний объектов.
Контрольные вопросы
1. При решении каких проблем лучше использовать объектно-ориентированный подход?
2. Какие характеристики являются фундаментальными в объектно-ориентированном мышлении?
3. На каких принципах базируется объектная модель?
4. Что такое паттерн проектирования?
5. Какому паттерну соответствует динамический и статический контейнер А. Усова?
6. Какие преимущества дает объектная модель?
7. В чем заключаются преимущества инкапсуляции?
8. В чем заключается важность наследования?
9. Для чего полезен полиморфизм?
10. Что такое агрегирование объекта?
11. Из каких этапов состоит процесс построения объектной модели?
12. Каким образом взаимодействуют между собой объекты в программе?
13. Какие процедуры применяются при перестройке схемы наследования классов?
14. Почему так важен анализ функционирования системы?
15. В чем заключается удобство использования CRC-карточек?
16. Какие диаграммы используют в проектах средней сложности?
Глава 9
ВИЗУАЛЬНОЕ
9.1. ОБЩЕЕ ПОНЯТИЕ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ
Визуальное программирование является в настоящее. время одной из наиболее популярных парадигм программирования. Визуальное программирование состоит в автоматизированной разработке программ с использованием особой диалоговой оболочки. Рассматривая системы визуального программирования, легко увидеть, что все они базируются на объектно-ориентированном программировании и являются его логическим продолжением. Наиболее часто визуальное программирование используется для создания интерфейса программ и систем управления базами данных.
С объектно-ориентированными системами ассоциируется программа Browser (рис. 9.1). Это средство вместе с системой экранных подсказок позволяет программисту по желанию просматривать некоторые части программного окружения и видеть весь проект уже созданной программы. Под проектом программы здесь понимается структура программы — состав файлов, объектов и их порождающих классов, которые слагают программу в целом.
Рис. 9.1. Browser в Delphi 5.0
Одну из ключевых возможностей программы Browser предоставляет окно, в котором находится список всех классов системы. При выборе одного из классов в специальных окнах отображаются его локальные функции и переменные. Затем при выборе одного из методов на отдельной панели высвечивается его код. Обычно в системе присутствуют средства для добавления и удаления классов из проекта. Программа Browser — это не просто визуализатор. Это основной, интегрирующий инструмент, который помогает одновременно рассматривать существующую систему и разрабатывать документацию программного проекта.
Структурной единицей визуального программирования в Delphi и C++Builder является компонента. Компонента представляет собой разновидность объекта, который можно перенести (агрегировать) в приложение из специальной Палитры компонент (рис. 9.2). Компонента имеет набор свойств, которые можно изменять, не изменяя исходный код программы.
Компоненты бывают визуальными и невизуальными. Первые предназначены для организации интерфейса с пользователем. Это различные кнопки, списки, статический и редактируемый текст, изображения и многое другое. Эти компоненты отображаются при выполнении разрабатываемого приложения. Невизуальные компоненты отвечают за доступ к системным ресурсам: драйверам баз данных, таймерам и т. д. Во время разработки они отображаются своей пиктограммой, но при выполнении приложения, как правило, невидимы. Компонента может принадлежать либо другой компоненте, либо форме.