Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 400107.doc
Скачиваний:
5
Добавлен:
30.04.2022
Размер:
568.32 Кб
Скачать

Процедуры.

Процедуры и функции были двумя первыми механизмами абстрагирования, примененными в языках программирования. Процедуры позволяют сконцентрировать в одном месте работу, которая выполняется многократно (возможно, с небольшими вариациями), и затем многократно использовать этот код, вместо того, чтобы писать его снова и снова. Кроме того, процедуры впервые обеспечили возможность маскировки информации. Программист мог написать процедуру или набор процедур, которые потом использовались другими людьми. Последние не обязаны были знать детали использованного алгоритма - их интересовл только интерфейс программы. Однако, процедуры не обладали эффективными механизмами маскировки деталей организации данных и только отчасти снимали проблему использования разными программистами одинаковых имен.

Модули.

В некотором смысле модули можно рассматривать как улучшенный метод создания и управления совокупностью имени связанными с ними значениями. Имеется определенная информация (интерфейсные процедуры), которые мы хотим сделать широко и открыто используемой, в то время как доступ к некоторым данным должен быть ограничен. Если рассматривать модуль как абстрактную концепцию, сведенную к своей простейшей форме, то ее суть состоит в разбиении пространства имен на две части. Открытая (public) часть является доступной извне модуля, закрытая (private) часть доступна только внутри модуля. Типы, данные (переменные) и процедуры могут быть отнесены к любой из двух частей.

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

Абстрактные типы данных.

Абстрактный тип данных задается программистом. С данными абстрактного типа можно манипулировать также как и с данными типов, встроенных в систему. Абстрактному типу данных (также как и типам данных, встроенных в систему) соответствует набор допустимых значений и ряд элементарных операций, которые могут быть выполнены над данными.

Модули часто используются при реализации абстрактных типов данных. Непосредственной взаимосвязи между понятиями модуля и абстрактного типа данных нет. Эти две идеи близки, но не идентичны. Чтобы построить абстрактный тип данных, необходимо:

1. Экспортировать определение типа данных.

2. Делать доступным набор операций, использующихся для манипулирования экземплярами типа данных.

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

4. Создавать несколько экземпляров абстрактного типа данных.

Объект в некотором смысле это просто абстрактный тип данных. но идеи ООП, хотя и строятся на идеях абстрактных типов данных, добавляют к ним важные новшества по части разделения и совместного использования программного кода.

Объекты: сообщения, наследование, полиморфизм.

Объектно-ориентированное программирование добавлет следующие идеи к концепции абстракных типов данных.

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

Итак, ООП - это новый шаг в осмыслении процессов декомпозиции задач и разработки программного обеспечения.

- ООП рассмаривает программы как совокупность свободно (гибко) связанных между собой агентов, называемых объектами. Каждый из них отвечает за конкретные задачи. Вычисление осуществляется посредством взаимодействия объектов. Следовательно, программирование - это моделирование мира.

- Объект получается в результате инкапсуляции состояния (данных) и поведения (операций). Тем самым объект во многом аналогичен модулю или абстрактному типу данных.