logo search
Диплом ИПОВС 2003 / Пояснительная запискаFinalVersion

Объектно-ориентированное программирование

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

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

Кроме главных, имеются ещё 3 дополнительных элемента:

Рассмотрю эти составляющие подробнее.

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

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

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

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

Иерархия – это упорядочивание абстракций по уровням. Примером иерархии является наследование – важнейший инструмент объектно-ориентированного программирования. Второй важной разновидностью иерархии является агрегация, определяющая отношение “partof”.

Понятие типизации взято из теории абстрактных типов данных. Типизация – это способ защититься от использования объектов одного класса вместо другого, или по крайней мере управлять таким использованием.

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

Ну и наконец, последний из элементов объектно-ориентированной модели - сохраняемость. Она представляет из себя способность объекта существовать во времени, переживая породивший его процесс, и(или) в пространстве, перемещаясь из своего адресного пространства.