295.68K
Category: programmingprogramming

ООП (Объектно-Ориентированное Программирование)

1.

Design Patterns. OOP. UML
Немчинский Сергей
2008

2.

ООП (Объектно-Ориентированное
Программирование)
парадигма программирования, в
которой основной концепцией
является понятие объекта,
отождествляя его с объектом
предметной области.

3.

Основные концепции
Система состоит из объектов
Объекты некоторым образом
взаимодействуют между собой
Каждый объект характеризуется
своим состоянием и поведением

4.

Принципы ООП
Инкапсуляция
Наследование
Полиморфизм

5.

Инкапсуляция
это принцип, согласно которому любой класс и в
более широком смысле – любая часть системы,
должны рассматриваться как чёрный ящик —
пользователь класса или подсистемы должен
видеть и использовать только интерфейс (т. е.
список декларируемых свойств и методов) и не
вникать во внутреннюю реализацию.
позволяет (теоретически) минимизировать число
связей между классами и подсистемами и,
соответственно, упростить независимую
реализацию и модификацию классов и подсистем.

6.

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

7.

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

8.

UML
UML (сокр. от англ. Unified Modeling
Language — унифицированный язык
моделирования) — язык
графического описания для
объектного моделирования в области
разработки программного
обеспечения.

9.

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

10.

Виды диаграмм UML
Structure Diagrams:
Class diagram
Component diagram
Composite structure diagram
Collaboration (UML2.0)
Deployment diagram
Object diagram
Package diagram
Behavior Diagrams:
Activity diagram
State Machine diagram
Use case diagram
Interaction Diagrams:
Communication diagram (UML2.0) /
Collaboration (UML1.x)
Interaction overview diagram (UML2.0)
Sequence diagram
Timing diagram (UML2.0)
Структурные диаграммы:
Классов
Компонентов
Композитной/составной структуры
Кооперации (UML2.0)
Развёртывания
Объектов
Пакетов
Диаграммы поведения:
Деятельности
Конечных автоматов (состояний)
Прецедентов
Диаграммы взаимодействия:
Коммуникации (UML2.0) /
Кооперации (UML1.x)
Обзора взаимодействия (UML2.0)
Последовательности
Синхронизации (UML2.0)

11.

Диаграмма классов UML
Диаграмма классов, Class Diagram — статическая
структурная диаграмма, описывающая структуру
системы, она демонстрирует классы системы, их
атрибуты и зависимости между классами.

12.

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

13.

Взаимосвязи. Агрегация
Агрегация — «has a» вариант ассоциации.
встречается, когда один класс является коллекцией или
контейнером других.
время существования содержащихся классов не зависит от
времени существования содержащего их класса. Если
контейнер будет уничтожен, то его содержимое — нет.

14.

Взаимосвязи. Композиция
Композиция — более строгий вариант «has a»
ассоциации.
Композиция имеет жёсткую зависимость времени
существования экземпляров класса контейнера и
экземпляров содержащихся классов. Если
контейнер будет уничтожен, то всё его
содержимое будет уничтожено также.
Графически представляется как и агрегация, но с
закрашенным ромбиком.

15.

Взаимосвязи классов.
Генерализация (обобщение)
Генерализация показывает, что один из двух связанных
классов (подтип) является более частной формой другого
(надтипа), который называется обобщением первого.
Графически генерализация представляется линией с
пустым треугольником у супертипа
Генерализация также известна как наследование или «is a»
взаимосвязь.

16.

Взаимосвязи классов.
Реализация
Реализация — отношение между двумя
элементами модели, в котором один
элемент (клиент) реализует поведение,
заданное другим (поставщиком).
Графически реализация представляется
также как и генерализация, но с
пунктирной линией.

17.

18.

Итоги
Что такое ООП
Три принципа ООП
UML
Диаграмма классов
Взаимосвязи элементов
English     Русский Rules