вторник, 17 января 2012 г.

13. Объектно-ориентированный подход к проектированию.


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

Интерфейс может быть разделен на 3 части:
·      публичную(public), объявления которой доступны всем клиентам;
·      защищенную(protected), объявления которой доступны только самому классу, его подклассам и друзьям;
·      приватную(private), объявления которой доступны только самому классу и его друзьям.
Другом класса называют класс, который имеет доступ ко всем частям этого класса (публичной, защищенной и приватной).

Виды отношений между классами

Всего существует четыре основных вида отношений между классами:
·      ассоциация (фиксирует структурные отношения — связи между экземплярами классов);
·      зависимость (отображает влияние одного класса на другой класс);
·      обобщение-специализацияis а»-отношение - процесс наполнения шаблона (родового или параметризованного класса);
·      целое-частьpartof»-отношение).

Комментариев нет:

Отправить комментарий