Skip to content

ООП4. Понятия ООП. Инкапсуляция, наследование, полиморфизм. Объекты, классы, домены и отношения между ними.

Winterpuma edited this page Jul 1, 2021 · 3 revisions

Основные принципы ООП:

Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя.

Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью.

Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

Объекты

Объект – конкретная реализация абстрактного типа, обладающая следующими характеристиками:

  • Состояние – один из возможных вариантов формы объекта
  • Поведение – описание объекта в терминах изменения его состояния во время жизни или под воздействием других объектов
  • Индивидуальность – сущность объекта, отличающая его от других объектов

Категории объектов:

  1. Реальные объекты – абстракция фактического существующего объекта реального мира.
  2. Роли – абстракции цели или назначения человека, части оборудования или организации.
  3. Инциденты – абстракция чего-то происшедшего или случившегося (наводнение, скачёк напряжения, выборы).
  4. Взаимодействия – объекты получаемые из отношений между другими объектами (перекресток, договор, взятка).
  5. Спецификации – используется для представления правил, критериев качества, стандартов (правила дорожного движения, распорядок дня).

Отношения между объектами

  • Отношения использования (старшинства) - каждый объект включается в отношения. Может играть 3 роли:

    • Активный объект– объект может воздействовать на другие объекты, но сам не поддается воздействию (воздействующий).
    • Пассивный объект – объект может только подвергаться управлению, но не выступает в роли воздействующего (исполнитель).
    • Посредники – такой объект может выступать в роли воздействующего, так и в роли исполнителя (создаются для помощи воздействующим). Чем больше посредников тем легче модифицировать программу.
  • Отношения включения – один объект включает другие объекты.

Все отношения между объектами могут быть сведены к двум типам:

  • Ассоциация (связь) — отношение, позволяющее реализовать взаимодействие клиент-сервер.
  • Агрегация (композиция) — отношение, служащее для определения понятия целое-часть и организации иерархий объектов.

Классы

Класс – такая абстракция множества предметов реального мира, что все предметы этого множества(объекты) имеют одни и те же характеристики, все экземпляры подчинены и согласованы с одним и тем же поведением.

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

  1. Наследование – на основе одного класса, мы строим новый класс, путем добавления новых характеристик и методов.
  2. Использование – один класс вызывает методы другого класса.
  3. Представление (наполнение) – это когда один класс содержит другие классы.
  4. Метакласс – класс, существующий для создания других классов (его экземпляры - классы).

Домены

Домен – отдельный, реальный, гипотетически и абстрактный мир, населенный отчетливым набором объектов, которые ведут себя в соответствии с предусмотренным доменом правилами.

Типы доменов:

  1. Прикладной домен - предметная область системы с точки зрения пользователя
  2. Архитектурный домен - обеспечивают единые механизмы управления данными и всей программой как единым целым (с него начинается разработка
  3. Сервисный домен - функционал для поддержки прикладного домена
  4. Домен реализации - функционал низкого уровня (использование возможностей ОС), может перейти в сервисный (если ОС не поддерживает)
Clone this wiki locally