|
Программирование >> Статьи Что такое объектно-ориентированное программирование?В 70-х годах прошедшего уже столетия стало ясно, что возможностей процедурного программирования уже недостаточно для разработки крупных проектов с большим количеством программного кода. Именно тогда было решено разработать новую методологию программирования, которая впоследствии получила название объектно-ориентированной. Первым полноценным языком программирования, полностью построенным на концепциях ООП, стал Smalltalk. Вскоре получил в качестве надстройки объектную модель и самый успешный на то время язык Си. Им стал Си с классами, получивший впоследствии название С++. Об этих языках читатель данной статьи многое узнает из других материалов сайта http://pmbk.ru.Данные, данные и еще раз данные… Ключевым аспектом в объектно-ориентированной модели стали данные. В процедурном программировании формально их ничего не связывало с процедурами или функциями. В новой же методологии данные и подпрограммы в виде процедур оказались связаны в объекте. Объект в свою очередь определяется как экземпляр класса, еще одного ключевого элемента в ООП, в котором заключена модель еще не существующего объекта — его чертеж, так сказать. Этот «чертеж» определяет некую абстрактную сущность, характеризуемую определенными параметрами и функциональностью. Параметры определяются полями этого класса, которые хранят определенные данные. Доступ к этим полям определен с помощью модификаторов доступа. Говоря о данных объекта, сообщают о его состоянии. Когда же обращаются к его функциям, то сообщают о поведении данного объекта. Повитаем в облаках… Абстракция — одна из ключевых особенностей модели ООП. Эта концепция позволяет подойти к любой действительности с позиций необходимости, выделяя необходимые важные для моделируемого объекта характеристики, абстрагируясь от всего того, что не полезно для данной модели и не несет никакой информации. Благодаря абстракции получают значимые, информативные для данной модели параметры и отражают их в классе в виде полей данных и полезной функциональности. Сокрытие реализации Сокрытие реализации в ООП имеет свое название — это инкапсуляция. Другим объектам вовсе нет необходимости знать, как устроен объект и какие алгоритмы он для этого использует. Именно благодаря инкапсуляции данные, хранящиеся в объекте, защищены от возможного непреднамеренного изменения благодаря наличию модификаторов доступа. В этом отношении говорят еще о сокрытии данных. Инкапсуляция считается одним из трех китов, на которых держится вся конструкция объектно-ориентированной модели. Еще один кит ООП Другой важной концепцией рассматриваемой парадигмы стало наследование. Предлагая абстрактные модели, ООП существенно обобщает реальные физические объекты. Однако каждое из таких обобщений может иметь конкретное воплощение, которое характеризуется теми же параметрами, что и более общая модель с добавлением некоторой своей функциональности, поведения. Благодаря наличию разных уровней абстракции, появилась необходимость не повторять функциональность уже существующей общей модели в более конкретной, а создать механизм, который позволит заимствовать функциональность общей модели в конкретную. Такой механизм в ООП получил название наследования. Он позволил определить общую модель в родительском классе, а более конкретную модель в дочернем, который как раз и заимствует данные и функциональность родительского класса, но при этом добавляет некоторое собственное поведение. Одинаковые методы — разное поведение Третьим китом здания ООП стал полиморфизм. Это страшное слово сообщает лишь о том, что с виду абсолютно одинаковые объекты могут обладать совершенно разным поведением. В программировании в этом случае говорят о наличии одних и тех же методов у разных классов, но обладающих различной их реализацией. В UML существует более точное описание, которое сообщает об одинаковых операциях классов с одной и той же сигнатурой и названием. Однако методы реализации поведения этих операций разные. При этом концепция полиморфизма позволяет осуществлять динамический вызов требуемого поведения во время выполнения программы. |
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |