![]() Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
![]() Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
![]() |
Концепция объектно-ориентированной технологии
В конце 80-х популярность завоевала методика ОО-проектирования и программиро-вания: языки Object Pascal, Eiffel, Object C, C++ и др. В этих языках класс – это также АТД, но более полноценный тип. Пример описания класса «стек символов» на С++:
class stack { // скрытая часть: инкапсулированные данные int size; // размер char* top // верх char* bottom // дно public: // интерфейс объектов класса stack stack (int); // конструктор ~stack; // деструктор void push (char); void pop(); } Вопрос 5.
Однако простые классы как АТД страдают отсутствием гибкости: если в другом контексте тип нужно повторно использовать с небольшими изменениями, то его приходится заново описывать. Наследование и полиморфизм решают эту проблему: общие свойства объектов воплощаются в базовом классе, а специфические свойства (данные и операции) добавляются или переопределяются в производных классах.
ОО-технология улучшает качество ПП, а именно: · Ясность, понятность, обозримость проекта и кода. Разрыв между понятиями предметной области и элементами программы сокращается: объекты имеют прототипы в реальности. Код может быть короче в 1.5-2 раза из-за наследования (общие свойства разделяются родственными объектами). Сокращается пространство имен: полиморфные методы имеют несколько реализаций. · Корректность (безошибочность) - благодаря инкапсуляции и статическому контролю классов как типов объектов. · Повторное использование библиотек классов лучше, чем библиотек подпрограмм. Вопрос 6.
ОО-технология хорошо соответствует нисходящей и инкрементальной стратегии разработки; раздельная компиляция описаний классов и их реализаций способствует раннему обнаружению ошибок сопряжения. Объектная структура ПП хорошо соответствует архитектуре распределенных систем, где естественна множественная реализация методов на разных машинах.
Недостаток ОО-программ - потери эффективности по времени из-за: - динамического связывания полиморфных методов - в среднем в два раза дольше, чем обращение к обычной подпрограмме - динамического порождения и уничтожения объектов, что дороже статического - в большой системе разные классы объявляются в разных файлах, и при вызове методов часто требуются скачки по памяти, ухудшающие локальность обращения к памяти и приводящие к листанию (свопингу)
ОО парадигма не ограничивается программированием приложений. Другие сферы: 1. Многооконные среды (MS Windows, X/Window для Unix): объекты - окна, методы - способы манипуляции ими, атрибуты (данные) - графические стили, наследование - дочерние окна наследуют атрибуты родительских. 2. Операционные системы (NextStep, Taligent): объекты - ресурсы ОС (такие, как память или файлы). 3. ОО базы данных (OpenODP, UniSQL) - нужны для данных со сложной структурой и неоднородных (много типов, но мало экземпляров) - мультимедиа, САПР, геоинформационные системы, базы знаний. Данные хранятся вместе с методами их семантической интерпретации, нужными для поиска и отображения (вывода).
Date: 2016-05-25; view: 440; Нарушение авторских прав |