💡 Learn how to design great software in 7 steps: https://arjan.codes/designguide.
In this video, I explain the difference between composition vs inheritance, what the design principle "favor composition over inheritance" means in practical terms, and how you can use it to make better software design decisions.
The code I worked on in this video is available here: https://github.com/ArjanCodes/2021-composition-vs-inheritance
🎓 ArjanCodes Courses: https://www.arjancodes.com/courses/
🔖 Chapters:
0:00 Intro
1:11 Explanation of the example
3:57 Technique #1: inheritance
8:30 Problems with the inheritance technique
10:02 Technique #2: composition
18:48 Improvement: turn Commission into an abstract class
20:03 Limitations of this example
21:29 Final thoughts
#arjancodes #softwaredesign #python