Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПО ответы.docx
Скачиваний:
13
Добавлен:
12.09.2019
Размер:
143.34 Кб
Скачать

37. Технологии программирования. Концепции программирования;

38. Объектно – ориентированное программирование. Принципы;

Рассмотрим сначала, как появилось объектно-ориентированное программирование. Ключевое понятие, помогающее при программировании, — это абстракция. Она позволяет лучше понять сущность программированного объекта или среду. Пусть нужно совершить поездку в Мурманск. Возникают вопросы: «Каким образом это сделать? какой транспорт использовать? сколько это будет стоить?» и т. д. Нужно выделить главное и отбросить лишнее. Тут главным будет вид транспорта. Эту абстракцию и проще всего назвать классом при программировании. У транспорта есть данные (скорость, количество двигателей и др.) и методы (взлет, посадка для самолета). Класс группирует данные и методы в единую сущность. Данные обычно закрыты, и их изменение, как правило, производится посредством методов, т. е. они защищены корректной работой методов. Первое использование классов как объектов произошло в 1967 г.: Бьерн Страуструп применил язык Simula в своей диссертации для программы, моделирующей компьютерные системы. Этот язык очень выразителен и позволяет работать с высоким уровнем абстракций. Однако при запуске программы оказалось, что у нее очень низкая производительность и выполнить работу в срок не удастся, поэтому пришлось переписать программу на языке Си. В Си классов нет. Страуструп их добавил, и появился язык C++ [40]

Несколько лет назад в журнале Byte появилась статья «Объектно-ориентированное программирование умерло?». В ней говорилось о том, что объекты не оправдали возложенные на них надежды. Достичь главной цели — повторного использования кода — с помощью объектов сложно, хотя сам процесс программирования они упростили. В этот же период Microsoft создает Visual Basic. Главным нововведением в нем является возможность вставки управляющих элементов (кнопок, полей ввода) на форму. К каждому элементу можно добавить кусок кода для описания его деятельности. Оказалось очень удобно, и вскоре были созданы тысячи новых элементов — появилось расширение VBX (Visual Basic Extention). Статья Byte описала управляющие элементы VBX как наиболее успешную реализацию мечты о повторном использовании кода. У многих поклонников ООП статья вызвала недовольство. Элементы VBX не являются объектно-ориентированными. В них нет даже концепции метода, нет наследования и полиморфизма. Тем не менее VBX может рассматриваться как пример программного компонента. Это часть бинарного кода, который может быть легко вставлен в различные приложения. VBX — это любопытная, но тупиковая ветвь эволюции технологии программирования. Однако она сыграла свою роль. Как же развивалась эволюция программирования? Первоначально существовали статические библиотеки. Такие библиотеки компоновались в выполняемый файл, т. е. каждая программа содержала код библиотеки. Их легко представить в виде перфокарт, которые вставляли программисты в свои программы в «далекие времена». Для того чтобы снизить затраты памяти, были созданы динамически компонуемые библиотеки DLL. При их применении несколькими приложениями в память загружалась только одна копия библиотеки, и все приложения использовали эту копию. Другое полезное свойство DLL — компоновка в процессе выполнения, т. е. новая версия DLL может быть использована без перестройки приложения. Если новая версия библиотеки совместима со старой, то код может оказаться эффективнее (если улучшены алгоритмы в библиотеки или исправлены ошибки), если нет, приложение может оказаться неработоспособным. Второй случай называется DLL HELL.