Using Composition Over Inheritance Makes You Think Better

In your quest to become a better software engineer, if your journey is anything like mine, you’ve heard it many, many times: “Composition Over Inheritance”.

Early on, it may seem counter-intuitive. You just learned all this “Object Oriented” stuff, and you want to make big pretty object graphs to solve all the world’s problems. The pros tell you to pump the breaks, you don’t listen because oh my god look at the beautiful fractal of inheritance I just created. Then your project becomes impossible to modify or maintain, and it’s not immediately obvious why.

Continue reading “Using Composition Over Inheritance Makes You Think Better”