-
Notifications
You must be signed in to change notification settings - Fork 0
ООП4. Понятия ООП. Инкапсуляция, наследование, полиморфизм. Объекты, классы, домены и отношения между ними.
Основные принципы ООП:
Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя.
Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью.
Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Объект – конкретная реализация абстрактного типа, обладающая следующими характеристиками:
- Состояние – один из возможных вариантов формы объекта
- Поведение – описание объекта в терминах изменения его состояния во время жизни или под воздействием других объектов
- Индивидуальность – сущность объекта, отличающая его от других объектов
Категории объектов:
- Реальные объекты – абстракция фактического существующего объекта реального мира.
- Роли – абстракции цели или назначения человека, части оборудования или организации.
- Инциденты – абстракция чего-то происшедшего или случившегося (наводнение, скачёк напряжения, выборы).
- Взаимодействия – объекты получаемые из отношений между другими объектами (перекресток, договор, взятка).
- Спецификации – используется для представления правил, критериев качества, стандартов (правила дорожного движения, распорядок дня).
-
Отношения использования (старшинства) - каждый объект включается в отношения. Может играть 3 роли:
- Активный объект– объект может воздействовать на другие объекты, но сам не поддается воздействию (воздействующий).
- Пассивный объект – объект может только подвергаться управлению, но не выступает в роли воздействующего (исполнитель).
- Посредники – такой объект может выступать в роли воздействующего, так и в роли исполнителя (создаются для помощи воздействующим). Чем больше посредников тем легче модифицировать программу.
-
Отношения включения – один объект включает другие объекты.
Все отношения между объектами могут быть сведены к двум типам:
- Ассоциация (связь) — отношение, позволяющее реализовать взаимодействие клиент-сервер.
- Агрегация (композиция) — отношение, служащее для определения понятия целое-часть и организации иерархий объектов.
Класс – такая абстракция множества предметов реального мира, что все предметы этого множества(объекты) имеют одни и те же характеристики, все экземпляры подчинены и согласованы с одним и тем же поведением.
Отношения между классами:
- Наследование – на основе одного класса, мы строим новый класс, путем добавления новых характеристик и методов.
- Использование – один класс вызывает методы другого класса.
- Представление (наполнение) – это когда один класс содержит другие классы.
- Метакласс – класс, существующий для создания других классов (его экземпляры - классы).
Домен – отдельный, реальный, гипотетически и абстрактный мир, населенный отчетливым набором объектов, которые ведут себя в соответствии с предусмотренным доменом правилами.
Типы доменов:
- Прикладной домен - предметная область системы с точки зрения пользователя
- Архитектурный домен - обеспечивают единые механизмы управления данными и всей программой как единым целым (с него начинается разработка
- Сервисный домен - функционал для поддержки прикладного домена
- Домен реализации - функционал низкого уровня (использование возможностей ОС), может перейти в сервисный (если ОС не поддерживает)