Объектно-ориентированное программирование – методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром класса, а классы образуют иерархию наследования.
Объектно-ориентированное проектирование – методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической, физической, статистической и динамической моделей проектируемой системы.
Объектно-ориентированный анализ – методология, при которой требования к системе предъявляются с точки зрения классов и объектов, выделенных в предметной области.
При объектно-ориентированном подходе программа представляет собой описание объектов, их свойств (или атрибутов), совокупностей (или классов), отношений между ними, способов их взаимодействия и операций над объектами (или методов).
Методы ООП:
· Абстрагирование – выделение существенных характеристик некоторого объекта, отличающих его от всех других объектов.
· Инкапсуляция – процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение.
· Модульность определяет способность системы подвергаться декомпозиции на ряд сильно связанных и слабо сцепленных модулей. Общая цель декомпозиции на модули: уменьшение сроков разработки и стоимости ПС за счет выделения модулей, которые проектируются и изменяются независимо.
· Иерархия– упорядочивание абстракций, расположение их по уровням. Двумя важными инструментами иерархической организации в объектно-ориентированных системах являются: структура из классов («isa»-иерархия) и структура из объектов («partof»-иерархия).
· Типизация– способ защититься от использования объектов одного класса вместо другого, или, по крайней мере, управлять таким использованием.
· Параллелизм– свойство, отличающее пассивный класс от активного.
· Сохраняемость – способность объекта существовать во времени, переживать породившие его процессы и/или в пространстве, перемещаясь из своего первоначального адресного пространства.
Объект — это конкретное представление абстракции. Объект обладает индивидуальностью, состоянием и поведением. Структура и поведение подобных объектов определены в их общем классе. Термины «экземпляр класса» и «объект» взаимозаменяемы.
Индивидуальность — это характеристика объекта, которая отличает его от всех других объектов.
Состояние объекта характеризуется перечнем всех свойств объекта и текущими значениями каждого из этих свойств
Поведение характеризует то, как объект воздействует на другие объекты (или подвергается воздействию) в терминах изменений его состояния и передачи сообщений. Поведение объекта является функцией как его состояния, так и выполняемых им операций
Операция обозначает обслуживание, которое объект предлагает своим клиентам. Возможны пять видов операций клиента над объектом:
· модификатор (изменяет состояние объекта);
· селектор (дает доступ к состоянию, но не изменяет его);
· итератор (доступ к содержанию объекта по частям, в строго определенном порядке);
· конструктор (создает объект и инициализирует его состояние);
· деструктор (разрушает объект и освобождает занимаемую им память).
С точки зрения внешней среды важное значение имеет такое понятие, как обязанности объекта. Обязанности означают обязательства объекта обеспечить определенное поведение. Обязанностями объекта являются все виды обслуживания, которые он предлагает клиентам.
Связь — это физическое или понятийное соединение между объектами. Объект сотрудничает с другими объектами через соединяющие их связи. Связь обозначает соединение, с помощью которого:
· объект-клиент вызывает операции объекта-поставщика;
· один объект перемещает данные к другому объекту.
Как участник связи объект может играть одну из трех ролей:
· актер — объект, который может воздействовать на другие объекты, но никогда не подвержен воздействию других объектов;
· сервер — объект, который никогда не воздействует на другие объекты, он только используется другими объектами;
· агент — объект, который может как воздействовать на другие объекты, так и использоваться ими. Агент создается для выполнения работы от имени актера или другого агента.
Связи обозначают равноправные (клиент-серверные) отношения между объектами.
Агрегация обозначает отношения объектов в иерархии «целое/часть». Агрегация обеспечивает возможность перемещения от целого (агрегата) к его частям (свойствам). Агрегация может обозначать, а может и не обозначать физическое включение части в целое.
При выборе вида отношения должны учитываться следующие факторы:
· связи обеспечивают низкое сцепление между объектами;
· агрегация инкапсулирует части как секреты целого.
Класс — описание множества объектов, которые разделяют одинаковые свойства, операции, отношения и семантику (смысл). Любой объект — просто экземпляр класса.
различают внутреннее представление класса (реализацию) и внешнее представление класса (интерфейс).
Интерфейс объявляет возможности (услуги) класса, но скрывает его структуру и поведение. Иными словами, интерфейс демонстрирует внешнему миру абстракцию класса, его внешний облик. Интерфейс в основном состоит из объявлений всех операций, применимых к экземплярам класса. Он может также включать объявления типов, переменных, констант и исключений, необходимых для полноты данной абстракции.
Структура представления класса:
Интерфейс может быть разделен на 3 части:
· публичную(public), объявления которой доступны всем клиентам;
· защищенную(protected), объявления которой доступны только самому классу, его подклассам и друзьям;
· приватную(private), объявления которой доступны только самому классу и его друзьям.
Другом класса называют класс, который имеет доступ ко всем частям этого класса (публичной, защищенной и приватной).
Виды отношений между классами
Всего существует четыре основных вида отношений между классами:
· ассоциация (фиксирует структурные отношения — связи между экземплярами классов);
· зависимость (отображает влияние одного класса на другой класс);
· обобщение-специализация («is а»-отношение - процесс наполнения шаблона (родового или параметризованного класса);
· целое-часть («partof»-отношение).
Комментариев нет:
Отправить комментарий