ППС (9) - Лекция №10 - ООП в ППС

Материал из Кафедра ИУ5 МГТУ им. Н.Э.Баумана, студенческое сообщество
Перейти к навигации Перейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

...начало

Основы объектно-ориентированного подхода

Наследование

При наследовании один класс заимствует структурную или функциональную часть одного или нескольких других классов. Основано на иерархии классов.

Наследование упрощает выражение абстракций, делает проект более выразительным.

Одиночное наследование - один или несколько классов наследуют свойства только одного родительского класса.

Множественное наследование - более гибкий вариант. Но тут есть потенциальная опасность ошибки - если неправильно пользоваться этим аппаратом, можно получить ошибку.

Типизация

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

Представляет собой механизм проверки проекта на ранней стадии программирования.

Полиморфизм

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

Аппарат полиморфизма связан с типизацией.

Классы и объекты

Класс представляет собой набор объектов, которые обладают общей структурой и одинаковым поведением.

Объект - конкретная реализация класса, экземпляр.

Объектно-ориентированный подход к проектированию программных систем

Преимущества объектной модели

  • в полной мере используются возможности языков программирования;
  • повышается уровень унификации разработки и пригодность для повторного использования;
  • система строится на основе стабильных промежуточных описаний, что упрощает внесение изменений;
  • уменьшается риск разработки;
  • единственная методология, позволяющая справиться со сложностью очень больших систем.

Типы объектов

Актёр - действующее лицо, может воздействовать на другие объекты, но сам никогда не подвергается воздействию со стороны других объектов. Находится вне системы, действует извне.

Сервер - может только подвергаться воздействию со стороны других объектов. Является внутренней частью системы.

Агент - может выступать как воздействовать, так и подвергаться воздействию.

Связи объектов

Три вида:

  • по информационному взаимодействию (по данным);
  • по управлению (вызываются методы другого объекта);
  • по иерархии наследования (связь со всеми объектами выше по иерархии).

Отношения между классами

Ассоциация

Семантическая (смысловая) связь без объяснения её реализации.

Фиксируются участники ассоциации, их роли в ассоциации, мощность и отношения.

Возможны три мощности:

  • один к одному;
  • один ко многим;
  • многие ко многим.

Наследование

  • одиночное;
  • множественное;
  • абстрактные классы - не имеют экземпляров, но имеют наследников.

Агрегация

  • физическое включение одного класса в другой (внутренний класс);
  • концептуальное вхождение одного класса в другой (контейнер).

Использование

Доступ к полям и методам класса (public, protected, private)

  • использование данных одного объекта для работы другого;
  • использования методов одного объекта для реализации поведения другого.

Инстанцирование

  • построение параметризированного класса (шаблона);
  • шаблон может параметризироваться другими классами, объектами или методами.

Метаклассы

Экземпляры которых сами являются классами.

В свою очередь, статические классы - это метаклассы. Не имеют экземпляров.

Архитектура системы

Ключевые абстракции - классы и объекты, составляющие словарь предметной области.

Механизм - структура, объединяющая множество объектов и обеспечивающая их взаимодействие и целенаправленное функционирование.

Классификация

Это определение классов и объектов - одна из самых сложных задач ООП.

Классификация - это творческий и итерационный процесс.

Любая классификация зависит от точки зрения субъекта. Не существует эталонной, совершенной классификации.