SlideShare uma empresa Scribd logo
1 de 49
Бублик Володимир Васильович Програмування - 2 Лекція  4 . Об'єктне програмування. Ієрархія об’єктів: композиція і агрегація  Лекції для студентів 2 курсу
Типи ієрархії об'єктів ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Композиція об'єктів ,[object Object],[object Object]
Приклад   1. Відрізок ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Приклад 2. Трикутник ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Приклад 3. Знову трикутник ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Приклад 4. Все той же трикутник ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Тривалість життя: створення компонент ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Тривалість життя: видалення компонент ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Права доступу ,[object Object],[object Object],[object Object]
Доступ до атрибутів: селектор ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Реалізація селектора ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Делегування ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Реалізація делегатів ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Неделеговані методи ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Асоційовані об'єкти  ,[object Object],[object Object]
Асоційовані об'єкти  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Створення асоційованої сторони t.side_a();  // Візьмемо трикутник  t
Створення асоційованої сторони t.side_a();  // Він має селектори вершин,
Створення асоційованої сторони t.side_a();  // Він має селектори вершин,   // але не сторін
Створення асоційованої сторони t.side_a();  // Візьмемо дві потрібні вершини
Створення асоційованої сторони t.side_a();  // і побудуємо відрізок
Варіант надлишкової композиції ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Селектор замість делегата ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Конструювання компонентів ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Consistency ( сумісність ) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Як правильно обрати компоненти композиту? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Конструювання сторін ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Тепер вершини делегуються ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Знову по сумісність ,[object Object],[object Object],[object Object]
Підсумок композицій ,[object Object]
Підсумок композицій ,[object Object]
Підсумок композицій ,[object Object]
Агрегація ,[object Object],[object Object],[object Object],[object Object],[object Object]
Агрегація указниками ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Сторони, агреговані в трикутник ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Конструктор агрегату ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Деструктор агрегату ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Модифікований селектор ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Агрегація сторін указниками ,[object Object],[object Object],[object Object]
Агрегація відсилкою ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Вершини, агреговані в сторону ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Збалансований трикутник ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],//Сторони трикутника // агреговані указниками class  Triangle { private: Point _a, _b, _c; Segment  * _ab,  * _bc,  * _ca; };
Збалансований трикутник
Збалансований трикутник
Збалансований трикутник
Збалансований трикутник
Гарантована сумісність
Висновок ,[object Object]

Mais conteúdo relacionado

Destaque

06 Data Structures
06 Data Structures06 Data Structures
06 Data Structuresolegapster
 
Transactional Blackbelts are different
Transactional Blackbelts are differentTransactional Blackbelts are different
Transactional Blackbelts are differentreachab7
 
Holistic Approach
Holistic ApproachHolistic Approach
Holistic Approachreachab7
 
The Race Party - Indianapolis 500 weekend
The Race Party - Indianapolis 500 weekendThe Race Party - Indianapolis 500 weekend
The Race Party - Indianapolis 500 weekendJennifer Beaver
 
2013 AllStar Celebrity Kickoff Party
2013 AllStar Celebrity Kickoff Party2013 AllStar Celebrity Kickoff Party
2013 AllStar Celebrity Kickoff PartyJennifer Beaver
 
2012 Celebrity Kickoff Party
2012 Celebrity Kickoff Party2012 Celebrity Kickoff Party
2012 Celebrity Kickoff PartyJennifer Beaver
 
Lc Presentation
Lc PresentationLc Presentation
Lc Presentationreachab7
 

Destaque (11)

06 Data Structures
06 Data Structures06 Data Structures
06 Data Structures
 
Transactional Blackbelts are different
Transactional Blackbelts are differentTransactional Blackbelts are different
Transactional Blackbelts are different
 
Holistic Approach
Holistic ApproachHolistic Approach
Holistic Approach
 
The Race Party - Indianapolis 500 weekend
The Race Party - Indianapolis 500 weekendThe Race Party - Indianapolis 500 weekend
The Race Party - Indianapolis 500 weekend
 
2013 AllStar Celebrity Kickoff Party
2013 AllStar Celebrity Kickoff Party2013 AllStar Celebrity Kickoff Party
2013 AllStar Celebrity Kickoff Party
 
2014 Super Bowl NYC
2014 Super Bowl NYC2014 Super Bowl NYC
2014 Super Bowl NYC
 
2012 Celebrity Kickoff Party
2012 Celebrity Kickoff Party2012 Celebrity Kickoff Party
2012 Celebrity Kickoff Party
 
2013 BRANDed
2013 BRANDed 2013 BRANDed
2013 BRANDed
 
01 Paradigms
01 Paradigms01 Paradigms
01 Paradigms
 
Lc Presentation
Lc PresentationLc Presentation
Lc Presentation
 
Rafale startup101
Rafale startup101Rafale startup101
Rafale startup101
 

Mais de olegapster

10 Polymorphism
10 Polymorphism10 Polymorphism
10 Polymorphismolegapster
 
06 Pointers To Class Members
06 Pointers To Class Members06 Pointers To Class Members
06 Pointers To Class Membersolegapster
 
05 Operations And Utilities
05 Operations And Utilities05 Operations And Utilities
05 Operations And Utilitiesolegapster
 
03 Right Of Access
03 Right Of Access03 Right Of Access
03 Right Of Accessolegapster
 
11 Iterated Containers
11 Iterated Containers11 Iterated Containers
11 Iterated Containersolegapster
 
07 Localisation
07 Localisation07 Localisation
07 Localisationolegapster
 
09 Static Polymorphism
09 Static Polymorphism09 Static Polymorphism
09 Static Polymorphismolegapster
 
03 Constants And Variables
03 Constants And Variables03 Constants And Variables
03 Constants And Variablesolegapster
 
02 Arithmetic Data Types
02 Arithmetic Data Types02 Arithmetic Data Types
02 Arithmetic Data Typesolegapster
 

Mais de olegapster (12)

10 Polymorphism
10 Polymorphism10 Polymorphism
10 Polymorphism
 
08 Templates
08 Templates08 Templates
08 Templates
 
06 Pointers To Class Members
06 Pointers To Class Members06 Pointers To Class Members
06 Pointers To Class Members
 
05 Operations And Utilities
05 Operations And Utilities05 Operations And Utilities
05 Operations And Utilities
 
03 Right Of Access
03 Right Of Access03 Right Of Access
03 Right Of Access
 
11 Iterated Containers
11 Iterated Containers11 Iterated Containers
11 Iterated Containers
 
07 Localisation
07 Localisation07 Localisation
07 Localisation
 
05 Arrays
05 Arrays05 Arrays
05 Arrays
 
09 Static Polymorphism
09 Static Polymorphism09 Static Polymorphism
09 Static Polymorphism
 
04 Operators
04 Operators04 Operators
04 Operators
 
03 Constants And Variables
03 Constants And Variables03 Constants And Variables
03 Constants And Variables
 
02 Arithmetic Data Types
02 Arithmetic Data Types02 Arithmetic Data Types
02 Arithmetic Data Types
 

04 Object Hierarchy