Книга: Технологии программирования

8.14.4. Гибридный проект

8.14.4. Гибридный проект

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

1) изучая объектно-ориентированное проектирование, программисты могут продолжать работать по технологии структурного программирования;

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


Рис. 8.18. Гибридный проект

Идея постепенного, пошагового овладения объектно-ориентированными языками и технологий их применения, а также возможность смешения объектно-ориентированного кода с кодом структурного программирования естественно приводит к проекту, имеющему гибридный стиль. Большинство интерфейсов можно пока оставить на процедурном уровне, поскольку что-либо более сложное не принесет немедленного выигрыша (рис. 8.18).

ВЫВОДЫ

• Процедурно-ориентированный и объектно-ориентированный подходы к программированию различаются по своей сути и обычно ведут к совершенно разным решениям одной задачи.

• Объектно-ориентированный подход помогает справиться с такими сложными проблемами, как:

— уменьшение сложности программного обеспечения;

— повышение надежности программного обеспечения;

— обеспечение возможности модификации отдельных компонентов программного обеспечения без изменения остальных его компонентов;

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

• Методы объектно-ориентированного проектирования используют в качестве строительных блоков объекты.

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

• Наследование выполняет в ООП несколько важных функций:

— моделирует концептуальную структуру предметной области;

— экономит описания, позволяя использовать их многократно для задания разных классов;

— обеспечивает пошаговое программирование больших систем путем многократной конкретизации классов.

• Классы из предметной (прикладной) области непосредственно отражают понятия, которые использует конечный пользователь для описаний своих задач и методов их решения.

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

• При перестройке иерархии классов применяются четыре процедуры:

1) расщепление класса на два и более;

2) абстрагирование (обобщение);

3) слияние;

4) анализ возможности использования существующих разработок.

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

• Объектная модель представляет статическую структуру проектируемой системы (подсистемы).

• Динамическая модель системы представляется диаграммой последовательности и диаграммой состояний объектов.

Контрольные вопросы

1. При решении каких проблем лучше использовать объектно-ориентированный подход?

2. Какие характеристики являются фундаментальными в объектно-ориентированном мышлении?

3. На каких принципах базируется объектная модель?

4. Что такое паттерн проектирования?

5. Какому паттерну соответствует динамический и статический контейнер А. Усова?

6. Какие преимущества дает объектная модель?

7. В чем заключаются преимущества инкапсуляции?

8. В чем заключается важность наследования?

9. Для чего полезен полиморфизм?

10. Что такое агрегирование объекта?

11. Из каких этапов состоит процесс построения объектной модели?

12. Каким образом взаимодействуют между собой объекты в программе?

13. Какие процедуры применяются при перестройке схемы наследования классов?

14. Почему так важен анализ функционирования системы?

15. В чем заключается удобство использования CRC-карточек?

16. Какие диаграммы используют в проектах средней сложности?

Оглавление книги


Генерация: 1.116. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз