This is the first lecture of my course "Object-Oriented Design," which is a continuation of the course "Object-Oriented Programming."
In this lecture, we review the relationships between classes and introduce the "Strategy" design pattern.
Practical exercises and code samples are available on my GitHub: https://github.com/alexey-malov/ood
Timecodes
0:00 Introduction
1:55 Composition
4:33 Aggregation
8:33 Dependency
13:17 Inheritance and Implementation
16:20 The Duck Simulator App
18:01 Inheritance Problems
28:41 Using Composition Instead of Inheritance
33:05 Analysis of a Composition-Based Solution
38:23 Assembling a Duck from Components
42:56 The Strategy Pattern
45:31 Applying the Pattern in the Slide Editor App
54:16 Compile-Time Strategies
57:53 Answers to Audience Questions
To stay in touch if YouTube is blocked in Russia, subscribe to my Telegram channel https://t.me/vivid_coding
The intro uses the composition "Daddy Can" "Si" by the musical group "Scientific and Technical Rap" (https://vk.com/nii_rap)
Source code for the shader from the splash screen: https://www.shadertoy.com/view/Mcjfzc