ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

Любая программная разработка базируется на некоторой парадигме программирования. Парадигма программирования — это совокупность идей и понятий, характеризующая стиль написания программ. В настоящее время парадигма программирования часто определяется используемыми языком программирования и дополнительными программными библиотеками. Выбор парадигмы программирования определяет термины, в которых программист будет описывать логику программы.

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

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

tC'iacc — это тип, описывающий устройство объектов. Понятие «класс» определяет некоторое поведение (методы) и способ представления (данные). Обычно классы разрабатывают так, чтобы их объекты соответствовали объектам предметной области.

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

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

Каждый объект системы — это некоторая сущность (Entity) предметной области, причем только одного типа, например «человек», «событие», «состояние», «идея», «предмет» и т.п. Он обладает общими атрибутами или характеристиками с другими экземплярами аналогичных объектов, т.е. этого же типа. Каждый объект должен быть уникально идентифицирован, что позволяет ему отличаться от всех других экземпляров данного объекта. И каждый экземпляр объекта отличается от всех других экземпляров данного объекта. При этом имя сущности должно отражать тип или класс объекта, а не его конкретный экземпляр (например, АЭРОПОРТ, а не ВНУКОВО).

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

Внешне каждый объект обладает свойствами и методами. Каждое свойство объекта соответствует атрибуту (Attribute) или характеристике сущности предметной области. Экземпляр атрибута определяется типом атрибута и его значением, называемым значением атрибута.

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

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

Инкапсуляция — способ скрыть детали реализации объекта от пользователя.

Полиморфизм — способ использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

Наследование — свойство, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствованной функциональностью. Класс, от которого производится наследование, называется базовым или родительским. Новый класс — потомком, наследником или производным классом.

Позднее связывание (Late binding) — это технология, которая позволяет создавать экземпляр объекта необходимого типа, позволяющего вызывать его члены во время выполнения при условии отсутствия их кодирования на этапе компиляции. Позднее связывание существенно улучшает динамичность разработки, но не выявляет ошибки во время компиляции, а только во время выполнения программного кода. В общем случае существует два типа связывания объектов:

  • 1) раннее — осуществляется на этапе компиляции;
  • 2) позднее — при выполнении программного приложения.

Изложенные принципы облегчают создание программных модулей

различных программных систем и позволяют систематизировать разработку ПО.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >