Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Software Engineering2011.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.12 Mб
Скачать

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

Объектно-ориентированное программирование (в дальнейшем ООП) — парадигма

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

Главными особенностями ООП являются:

1. Инкапсуляция — это принцип, согласно которому любой класс должен

рассматриваться как чёрный ящик — пользователь класса должен видеть и

использовать только интерфейсную часть класса.

2. Наследование — способ определения нового типа, перенимая элементы

(содержание и методы) существующего и модифицируя или расширяя их.

3. Полиморфизм - позволяет единообразно ссылаться на объекты различных

классов (обычно внутри некоторой иерархии).

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

Объектно-ориентированное проектирование основывается на описании структуры и поведения проектируемой системы, то есть, фактически, в ответе на два основных вопроса: из каких частей состоит система. В чём состоит ответственность каждой из частей.

Достоинства ООП:

  • Использование ООП облегчает разработку больших проектов, предоставляя разработчику

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

  • Разбиение с помощью классов позволяет объединить связанные данные и операции над

  • ними, отделить их от других данных и операций.

  • Инкапсуляция разграничивает реализацию класса и его ответственность, таким образом,

  • изменение внутренней организации класса не повлияет на его использование.

Недостатки ООП:

  • ООП-разработка часто приводит к созданию «многослойных» приложений, где

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

  • Код, относящийся к «оконечным» классам иерархии наследования (которые обычно и используются программой непосредственно) — находится не только в самих этих классах, но и в их классах-предках. Относящиеся к одному классу методы фактически описываются в разных классах.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]