Основные принципы ООП. Концепции
Введение
План:
1. Цели и задачи дисциплины.
2. История возникновения объектно-ориентированного программирования. Предпосылки развития.
3. Основные принципы ООП. Концепции.
Цели и задачи дисциплины.
Основная цель изучения дисциплины – формирование профессиональной компетентности будущих специалистов в области объектно-ориентированного программирования.
Задача дисциплины – формирование знаний об ООП и приобретение практических навыков разработки объектно-ориентированных программ с использованием языка программирования Pascal.
История возникновения объектно-ориентированного программирования. Предпосылки развития.
Первоначально программисты реализовывали свои проекты путем непосредственного написания кода. С возрастанием размера и сложности проектов становилось все яснее, что такой подход неудачен. Проблема заключалась в непропорциональном возрастании сложности процесса создания самих программ. Из-за сложности такие программы нередко содержат ошибки. Ошибки в программном обеспечении потенциально могут стать причиной материального ущерба, а иногда и угрожать жизни людей. В результате борьбы с проблемой сложности программного кода была выработана новая концепция программирования – объектно-ориентированное программирование (ООП).
Вместо того чтобы рассматривать программу как набор последовательно выполняемых инструкций, в ООП программа представляется в виде совокупности объектов, обладающих сходными свойствами и набором действий, которые можно с ними производить.
Применение объектно-ориентированного подхода делает программы понятнее, надежнее и проще в использовании.
Основные принципы ООП. Концепции.
Принципиальное различие между структурным и объектно-ориентированным подходом заключается в способе декомпозиции системы. В основе алгоритмической декомпозиции лежит разбиение по действиям — алгоритмам. Объектно-ориентированный подход использует объектную декомпозицию, при этом статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами. Каждый объект системы обладает своим собственным поведением, моделирующим поведение объекта реального мира.
Объект представляет собой особый опознаваемый предмет или сущность, имеющий четко определенное функциональное назначение в данной предметной области. Объект характеризуется состоянием, поведением, индивидуальностью. Структура и поведение одинаковых объектов описывается в общем для них классе. Состояние объекта характеризуется перечнем всех его возможных свойств и текущими значениями. Поведение объекта характеризуется изменением его состояний в процессе взаимодействия с другими объектами посредством передачи сообщения.
Класс - множество объектов, связанных общностью структуры и поведением.
Объектная модель имеет четыре главных принципа:
- абстрагирование
- ограничение доступа или инкапсуляция
- модульность
- иерархия.
Без любого из этих принципов модель не будет объектно-ориентированной. Кроме главных, имеется три дополнительных принципа, они полезны в объектной модели, но не обязательны:
- типизация
- параллелизм
· сохраняемость или устойчивость
Абстрагирование- это выделение таких существенных характеристик объекта, которые отличают его от всех других видов объектов и таким образом чётко определяются особенности данного объекта с точки зрения дальнейшего его рассмотрения. Абстрагирование позволяет отделить самые существенные особенности поведения от несущественных.
Инкапсуляция- это процесс разделения элементов объекта, определяющих его устройство и поведение.
Эти два принципа дополняют друг друга. Абстрагирование направлено на наблюдаемое поведение объекта, а инкапсуляция занимается внутренним устройством. Практически это означает наличие двух частей в классе: интерфейса и реализации. Интерфейс отражает внешнее поведение объекта. Внутренняя реализация описывает представление этой абстракции и механизмы достижения желаемого поведения объекта.
Модульность- это свойство системы, связанное с возможностью декомпозиции на ряд внутренне связанных, но слабо связанных между собой модулей. Модульность - это разделение программы на раздельно компилируемые фрагменты, имеющие между собой средства сообщения.
Иерархия- упорядоченная система абстракций. Принцип наследования позволяет упростить выражения абстракции, делая проект менее громоздким и более выразительным.
Наследование - это такая иерархичность абстракций, в которой подклассы наследуют строение от одного или нескольких классов. В подклассе, кроме того, могут быть определены дополнительные атрибуты и методы. Классы отражают наиболее общие, а подклассы более специализированные абстракции. Различают случаи простого и множественного наследования.