Объектно – ориентированные языки программирования
Рефераты >> Программирование и компьютеры >> Объектно – ориентированные языки программирования

До сих пор большинство используемых программных систем построены на принципах структурного подхода, суть которого состоит в декомпозиции системы на ряд модулей, процедур, функций и структур данных, связанных общим алгоритмом функционирования. Но распространение мощных персональных компьютеров (сравнимых с рабочими станциями 70-80-х годов) создало в 90-х годах основу для широкого применения объектно-ориентированного подхода на практике. В последнее время более широко начинают использоваться языки программирования, созданные в рамках объектно-ориентированной методологии, такие как Smalltalk и Java.

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

  • автоматизация эксперимента, робототехника;
  • диспетчеризация, планирование;
  • интерфейс пользователя, анимация;
  • коммуникации, связь;
  • медицина, экспертные системы;
  • обработка коммерческой информации;
  • операционные системы;
  • системы управления;
  • тренажеры, моделирование.

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

Такой подход позволяет локализовать принимаемые решения рамками объекта, объединяя в нем и структуру, и поведение, а, следовательно, снижая сложность отдельной программы (реализующей объект). Эта идея объединения структуры и поведения в одном месте и сокрытия всех данных внутри объекта, что делает их невидимыми для всех, за исключением методов самого объекта называется инкапсуляцией. Это позволяет объектам функционировать совершенно независимо друг от друга, скрывая за интерфейсом детали реализации. Инкапсуляция позволяет рассматривать объекты, как изолированные "черные ящики", которые знают и умеют выполнять определенные действия. С этой точки зрения, внутреннее устройство "черных ящиков" для нас значения не имеет, нам все равно, что происходит внутри. Важно только знать, что надо положить в ящик при обращении к нему и что мы при этом из него получим. Таким образом, объекты объектно-ориентированных систем - это минимальные единицы инкапсуляции.

Но как управлять таким миром объектов, когда их становиться достаточно много? Ведь многие из них будут очень сильно отличаться друг от друга, а другие объекты будут очень похожи друг на друга. Здесь на сцену выходит одна из ключевых концепций объектно-ориентированного программирования - идея группировки объектов в классы, в соответствии с тем как они устроены и действуют. Такая идея впервые была реализована еще в 60-ые годы в языке Simula. Под классом понимается множество объектов, связанных общностью структуры и поведения. Класс можно сравнить с шаблоном, по которому создаются объекты. Именно класс вначале описывает переменные и методы объекта, то есть структуру и поведение объекта, и определяет механизмы создания реально существующего в системе объекта, который, когда создается, представляет собой экземпляр класса.

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

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

После краткого описания некоторых ключевых понятий объектно-ориентированной методологии, можно сделать вывод, что концептуально объектно-ориентированная методология программирования опирается на объектный подход, который включает четыре основных принципа:

Абстрагирование.

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

Ограничение доступа.

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

Модульность.

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

Существование иерархий.

Ранжирование, упорядочивание по некоторым правилам объектов системы.

Объектно-ориентированная методология (ООМ) состоит из следующих частей:

  • объектно-ориентированный анализ (OOA),
  • объектно-ориентированное проектирование (OOD),
  • объектно-ориентированное программирование (OOР).

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


Страница: